测试基础
有的图像的拍摄受到不均匀的背景光照条件的影响,导致图像的像素的地基不少处于同一水平上,这里有一个专门解决该类问题的形态变换——顶帽变换
MATLAB本身自带有一些用于实验的相关图像,如果不清楚该类图像的存储位置,可以在MATLAB中输入:which riceblurred.png,就可以得到图片的存储路径
测试代码
% 灰度形态学之顶帽变换(解决非均匀光照背景照成图像模糊) I = imread('riceblurred.png'); subplot(2,4,1),imshow(I,[]); gap1=graythresh(I);%自适应确定阈值 gap_image=imbinarize(I,gap1); subplot(2,4,2),imshow(gap_image,[]);%自适应阈值结果图 subplot(2,4,3),surf(double(I(1:8:end,1:8:end))); zlim([0 255]),colormap gray;%展示I的三维可视效果 achieve_background=imopen(I,strel('disk',15));%半径15的圆形结构元素进行灰度开运算提取图像背景曲面 subplot(2,4,4),surf(double(achieve_background(1:8:end,1:8:end))); zlim([0 255]),colormap gray;%展示achieve_background背景图像的三维效果可视图 Itophat=imsubtract(I,achieve_background);%进行顶帽变换 subplot(2,4,5),imshow(Itophat);%展示变换效果图 subplot(2,4,6),surf(double(Itophat(1:8:end,1:8:end)));%展示变换后的三维效果可视图 zlim([0 255]),colormap gray; %进行对比度比较 I2=imadjust(Itophat); subplot(2,4,7),imshow(I2); gap2=graythresh(I2); gap2_image=imbinarize(I2,gap2); subplot(2,4,8),imshow(gap2_image);
测试效果
测试效果分析
从下图可以得到对原图进行自适应阈值的处理导致图像下半部分的米粒缺失,效果较差
对原图进行三维分析(如图1)展示中可以看到其各像素的基准点不是在同一水平,而导致这一效果的原因就是背景光照的不均匀(如图2)。进行顶帽变换后其基准点都在同一水平上(如图3),而且最终效果很好,通过顶帽变换后再进行自适应阈值处理,效果较之前好了不少。



1576

被折叠的 条评论
为什么被折叠?



