针对相同场景,不同相机条件,不同环境参数条件下,灰度图像所具有的灰度特征有所不同,对于后续特征识别,特征标定,图像特质分析等后处理均产生了不小的麻烦。在进行图像灰度一致性校正过程中,我通过多种方法的识别测试,最终测试后有以下结果。

整体灰度图像的一致性校正过程,转化为数学模型(本人数学基础较差,多有误错请谅解并指出)。即如何找到两幅图像中对应相同特征的不同灰度值,即在已知定义域和值域条件下,利用图像中的特征取寻找适当的函数关系。

首先本人在研究之初,采用最为简单的,通过灰度直方图,进行灰度出现频率的排序过程,在同样的拍摄内容中,相同特征在图像中的灰度值可能不同,但出现的频率大致相同,通过逐步对各个灰度的出现频率进行分析研究,可得到多幅图像间对应的灰度内容,并通过回归、拟合等方法最终实现图像的一致性校正过程。

但随着该方法的实际适用,发现仅考虑的图像的灰度变化情况还掺杂着对比度变化,增益变化,噪声变化等等诸多因素。故而该方法适用性较低。并且由于一幅图像中,多数灰度出现频率吧并不会很集中,并且多个灰度出现频率会类似,甚至相同。如下图所示:

如上,该两幅图具有完全相同的灰度内容(实际图像并未展示),仅在不同环境下成像过程,导致其对比度分布,增益分布,图像均衡等方面均有所不同,但在灰度直方图分配过程中,整体曲线分布存在差异,无法仅仅通过灰度频率分布实现图像内容的对应识别。同时在图中也可以发现,内容中灰度出现频率最高的灰度值,往往在不同条件下,其灰度频率始终维持在一个较高的位置。故而该方法具有一定的参考性。即可以通过最高频率灰度大致确定最大的特征在图像中的灰度分布情况。

那么在实际求取特征过程中,随着我对灰度特征内容定位所带入了数学模型越复杂,在不考量计算效率的条件下,图像间的变化关系越来越精确具体。但最精确地,图像间的一致性校正理论,即为将整张图像所有坐标点的灰度值一一对应,例如有两张2048*2048的图像,在进行一致性校正时,则可以将2048*2048=4194304个确定像素位置相关的灰度值进行一一对应,如果可以直接将该关系进行求解,则可以确定两张图像各自条件下最佳的变化关系。

但在实际计算时,本人所需求解往往是需要及时性的求解过程,并且往往环境条件并不固定,所以上述理想化方法局限性明显,虽然可以高精确的求解出对应灰度图像间的变化关系,但在更为广泛的条件下,由于其过高的计算量,所以该方法仅在单张图像验证时具有一定的效果。

这是针对该应用的大致前期研究背景,后期本人研究过程将由下三个方面开展:

1.如何用最少的灰度特征,代表一致性处理过程的整张图像特点。

2.如何在整张图像中找到最适合一致性处理的图像特征内容。

3.如何求取适当的计算效率与精度兼容的计算模型。

具体如下内容:

1.如何用最少的灰度特征,代表一致性处理过程的整张图像特点。

本人所需求灰度图像一致性校正,主要有两种目标要求,一个是实现成像的实时校正,通过算法写好界面直接显示校正后的图像内容,而此时图像间一般灰度差异不会太明显,在多张中偶尔出现单证图像灰度值跳闪,亮度拉低等情况。该目标一般用于实现DR过程,即X射线成像时,由于射线源功率无法始终稳定保持,仅用于DR成像过程。

在此需求条件下,如果要找到最少的特征,我所采用了特征识别定位+局部特征提取方法。特征识别定位我主要通过边缘识别,阈值分割对图像中几何形状标注分类,通过区域连通域坐标范围用以进行重合性识别,实现特征定位。下代码为图像中的小球质心识别:

clear
close all
clc、
%%
Img1=im2double(imread('1.jpg'));%读取图片F:\picture
%Img1=Img1*2;
[mx,my]=size(Img1);
n=graythresh(Img1);
B=im2bw(Img1,0.4);
[height, width]=size(Img1);
for i1=1:2048for i2=1:2048if Img1(i1,i2)>0.57Img1(i1,i2)=1;elseImg1(i1,i2)=0;endendend
bw=Img1;
bbw=bw;
bw=1-bw;
bw = bwareaopen(bw,9000);
bw = bwareaopenbig(bw,20000);
% figure(20),imshow(bw);
se = strel('disk',2);
bw = imclose(bw,se);
% figure(30),imshow(bw);
% bw = imfill(bw,'holes');
% figure(40),imshow(bw);
[B,L] = bwboundaries(bw,'holes');
figure(50)
imshow(label2rgb(L,@jet,[.5 .5 .5]))
hold on
for k = 1:length(B)boundary = B{k};plot(boundary(:,2),boundary(:,1),'w','LineWidth',2)
end
stats = regionprops(L,'Area','Centroid');
threshold = 0.94;
% loop over the boundaries
for k = 1:length(B)% obtain (X,Y) boundary coordinates corresponding to label 'k'boundary = B{k};% compute a simple estimate of the object's perimeterdelta_sq = diff(boundary).^2;    perimeter = sum(sqrt(sum(delta_sq,2)));% obtain the area calculation corresponding to label 'k'area = stats(k).Area;% compute the roundness metricmetric = 4*pi*area/perimeter^2;% display the resultsmetric_string = sprintf('%2.2f',metric);% mark objects above the threshold with a black circleif metric > thresholdcentroid = stats(k).Centroid;plot(centroid(1),centroid(2),'ko');endtext(boundary(1,2)-35,boundary(1,1)+13,metric_string,'Color','y',...'FontSize',14,'FontWeight','bold')
end
title(['Metrics closer to 1 indicate that ',...'the object is approximately round']);
%%
[L,num]=bwlabel(bw,4);
plot_x=zeros(1,num);%%用于记录质心位置的坐标
plot_y=zeros(1,num);for k=1:num  %%num个区域依次统计质心位置sum_x=0;sum_y=0;area=0;for i=1:heightfor j=1:widthif L(i,j)==ksum_x=sum_x+i;sum_y=sum_y+j;area=area+1;   endendendplot_x(k)=fix(sum_x/area);plot_y(k)=fix(sum_y/area);
end
for i=1:num
hold on
plot(plot_y ,plot_x, '*');
% text(real(1,i) ,real(2,i),[num2str(i)],'color','b');
end

代码中bwareaopen函数,主要负责对二值化后连通域的面积大小进行限定,bwareaopenbig函数同理,该函数改编方法本人仅参考,来源于csdn上很多大神程序的片段,我这里具体修改的是:

bwareaopen函数本身matlab自带,bwareaopenbig函数则是:

idxToKeep = CC.PixelIdxList(area <= p);
idxToKeep = vertcat(idxToKeep{:});

此处修改后,bwareaopen用于保证连通域面积下限,bwareaopenbig用于保证连通域面积上限。通过整体图像大小,特征圆面积大小即可进行识别。

同时上代码本人在具体实现时,根据灰度图像的不同特点,可线性化灰度特征,提高对比度以实现更好的边缘识别能力。除了圆形,同样可以根据需求,面积大小不同,尽可能识别各类不同参数的特征。

识别特征主要是用于图像的一致性校正特征的定位过程,在进行一些特征的定位后,我们可以首先围绕特征坐标区域范围进行灰度拟合进行校正,及在上述代码中,可围绕质心区域范围坐标内的多幅图像进行灰度拟合校正过程。

同时在上述代码的基础上,还可以消除对连通域面积的判断,从而直接按照面积大小寻找面积最大和最小的连通域,面积最大的连通域一般是背景区域,故而在确定背景区域后,可以按规律提取等间隔坐标范围的点集,进行拟合。

取得图像中一致性校正特征的方法主要内容如上。

2.如何在整张图像中找到最适合一致性处理的图像特征内容。

按照第一步,我们可以按照不同的方法,得到特征内容灰度区域的坐标位置,但在多种各类特征中,如何找到最适合一致性校正的特征内容,对后续处理的算法效率至为关键。不同的特征,在灰度上体现即为频率,灰度值,坐标范围。综合分析一下,图像一致性问题的来源,即由于环境不同,成像设备参数不同两方面造成。

环境因素:主要导致图像的整体亮度有偏差,整体图像的对比度不同。

成像设备:成像设备造成的影像内容相对较多,包含图像噪声,成像清晰度,边缘锐化程度等等。

由于环境因素所造成的 ,本人所采集得到的图像一般显现出的特点为图像亮度,对比度等整体特性异同;而成像设备差异或不稳定性造成的除了类似于环境因素的全局变化特性,也会出现噪点,局部图像特性变化等特征,所以在不同条件下,针对不同的影像因素需要有针对性的解决方法。

针对图像亮度及对比度处理过程,本人考虑到算法效率等影响,仅采用一次函数拟合,对整张图像进行均匀取点,然后线性拟合,以此对整张图像进行亮度及对比度的调整。取点方法采用灰度值等间隔中位数取点过程。如下:

[m,n]=size(img1);
k=1;
for i=1:10:mfor j=1:10:n
s(k)=median(img1(i,j));
k=k+1;end
end

即等10间隔取中位数,求得图像代表性灰度值点。在图像中对该点集进行坐标记录,在不同图像间找到同坐标灰度值,进行拟合即可得到变化关系。

对于成像设备成像区别,一般在图像中局部区域出现图像不一致性时,本人采用长短帧均值方法,用以保持整体系统的区别差异。

matlab灰度图像一致性校正方法相关推荐

  1. matlab 多重比较,谈一谈两种常用的多重比较校正方法(附Matlab程序)

    作者:kervin 微信号:kervin_zhao 在科学研究的统计分析中,我们往往会遇到多重比较校正问题.多重比较校正的方法很多,如Bonferroni.False Discovery Rate(F ...

  2. 同步压缩变换 matlab,一种基于同步压缩变换重构的幅值校正方法

    一种基于同步压缩变换重构的幅值校正方法 [技术领域] [0001] 本发明属于信号处理技术领域,具体设及一种基于同步压缩变换重构的幅值校正 方法. [背景技术] [0002] 时频分析方法是处理非平稳 ...

  3. matlab怎么进行色偏校正,色偏图像的校正方法

    色偏图像的校正方法 [专利摘要]本发明提供了一种色偏图像的校正方法,其特征在于包括以下步骤:1.对色偏图像进行软分类,计算每一类图像的比例系数ρk:2.根据ρk对每一类图像进行高光提取,得到每一类图像 ...

  4. matlab怎么转换广角照片,广角相机非规则畸变全域校正方法与流程

    本发明属于视觉测量领域,涉及广角相机非规则畸变全域校正方法. 背景技术: 随着计算机行业和芯片行业的飞速发展和不断更新,智能驾驶.智能监控等技术不断成熟.相机的作用和应用有了很大的发展,相机不仅仅是获 ...

  5. matlab 倾斜矫正,matlab图像倾斜校正

    4 图像颜色畸变校正介绍图像颜色畸变现象可以是由摄像器材导致,也可以是由于真实环境本身就偏 色导致,还有的是由于图像放置过久氧化.老化导致.无论其产生的原因如何, 其校正方法都是类似的.如果用 Mat ...

  6. matlab几何失真校正,摄像头图像失真校正

    基于MATLAB的摄像头 图像失真校正 上学的时候玩智能车摄像头组,从发现图像失真.到下载研究各种文档.再到写程序测试.最后实际运用,整个过程很有意思,特别是逆透视变换值得研究.下面的内容是那时候写的 ...

  7. Benchmarking of long-read correction methods长期校正方法的基准测试

    长期校正方法的基准测试  朱莉安·C·多姆(Juliane C Dohm), 菲利普·彼得斯, 南希·斯特拉斯(Nancy Stralis-Pavese ) 亨兹·希梅尔鲍尔(Heinz Himmel ...

  8. python大气校正_Sentinel-2卫星影像的大气校正方法

    4 结果分析 为了初步分析三种大气校正方法的结果, 选取10 m分辨率(B2, B3, B4, B8)及20 m分辨率(B5, B6, B7, B8a)8个波段, 并选择冬小麦.裸土.水泥路和油菜地4 ...

  9. matlab线性串联校正,基于MATLAB串联超前校正设计.ppt

    MATLAB是一个具有多种功能的大型软件,借助于MATLAB可靠的仿真和运算功能,可以使控制系统分析与设计问题变得简单,它为控制系统的设计和仿真提供了一个有力的工具.从而大大提高工作效率. 超前校正设 ...

最新文章

  1. 重磅!上海交通大学取消博士论文发表要求!
  2. cdn大全 jquery/jqueryUI/Dojo/MooTools/Prototype
  3. Golang 新手可能会踩的 50 个坑
  4. codeforces#597 D. Shichikuji and Power Grid(虚点+最小生成树+记录)
  5. 数据采集中的采样率、缓冲区大小以及,每通道采样数之间的关系
  6. linux的无密码登录,linux 无密码登录
  7. 详解数据中台构建核心产品Dataphin“ 规划”能力
  8. pandas全表查询定位某个值所在行列
  9. git 合并冲突_git分支管理的策略和冲突问题
  10. Centos7.2 / Linux的下搭建LAMP环境的搭建和配置虚拟主机
  11. Catia抛物线建模_CATIA模型怎么做正向设计?以某景观桥梁为例
  12. android gridview 详解,Android开发 GridView详解
  13. 通州十三五规划精华版:增几十万就业机会/一批地铁
  14. 怎么找到电脑的打印机
  15. 《徐志摩传》记得也好,最好你忘掉
  16. 三星S7edge从8.0降到6.0.1,只为流畅的飞一般的感觉
  17. 1.2 Eight Great Ideas in computer Architecture
  18. 萌新带你开车上p站(二)
  19. stata合并多张箱线图的命令
  20. 忽如一夜春风来,千树万树梨花开

热门文章

  1. webmagic+selenium模拟浏览器启动(动态网页爬取方法之一的第一步)
  2. What is Unified Extensible Firmware Interface (UEFI)?
  3. idea 安装教程图解
  4. (D)TLS1.3大揭秘之密码技术
  5. 济南国家超级计算机中心是学校吗,国家超级计算济南中心
  6. Python 探索 Tello 无人机的奇妙世界
  7. 高中数学必修5知识点:第二章数列
  8. 基于 Alfred Workflow 的开发效率小工具
  9. iar怎么新建立项目_请简述IAR中创建一个应用项目的步骤及配置过程。
  10. ss安装时,加密方式为chacha20时,libsodium安装