您的位置:首页 > 汽车 > 新车 > 《数字图像处理与机器视觉》案例一(库尔勒香梨果梗提取和测量)

《数字图像处理与机器视觉》案例一(库尔勒香梨果梗提取和测量)

2024/7/4 6:08:19 来源:https://blog.csdn.net/xrgs_shz/article/details/139901203  浏览:    关键词:《数字图像处理与机器视觉》案例一(库尔勒香梨果梗提取和测量)
  • 一、引言

       果梗是判断水果新鲜程度的重要标志,对水果的贮藏和保鲜也具有重要的参考价值。库尔勒香梨分级标准中对果梗有明确要求,要求果梗完整,但由于库尔勒香梨果梗颜色与果实接近,用传统的简单阈值分割方法难以提取。因此,下面基于数学形态学开发一个能实现其果梗提取和测量的程序。

  • 二、程序代码

clear all;

close all;

clc;

I=imread('.\FragrantPear.tif');

I_R=I(:,:,1);

I_G=I(:,:,2);

I_B=I(:,:,3);

I_GB=I_G-I_B;

figure,imshow(I_GB),title('G-B图像');

figure,imhist(I_GB),title('G-B灰度直方图');

%I_GB_bw=im2bw(I_GB,graythresh(I_GB));  %分割阈值的选择

I_GB_bw=im2bw(I_GB,2/255);  %分割阈值的选择

figure,imshow(I_GB_bw);

SE=strel('disk',1);%确定结构元素形式和尺寸

obj=imopen(I_GB_bw,SE);%数学形态学开运算,消除小目标并平滑边界

obj=imfill(obj,'holes');

figure,imshow(obj),title('库尔勒香梨二值图像');

obj2=uint8(obj).*I;

figure,imshow(obj2),title('库尔勒香梨彩色图像');

[L,num]=bwlabel(obj);

stats=regionprops(L,'Area','Perimeter');

A=[stats.Area];      %获取库尔勒香梨的面积

P=[stats.Perimeter]; %获取库尔勒香梨的周长

FP=bwmorph(obj,'remove');

figure,imshow(FP);%获取库尔勒香梨的边缘图像

imtool(obj)

SE2=strel('disk',10);  %选取合适的结构元素

M=imopen(obj,SE2);

figure,imshow(M);

Stem=logical(obj-M);%图像减法获取果梗图像像

figure,imshow(Stem);

Stem2=bwareaopen(Stem,100);%去除噪声

figure,imshow(Stem2);

%测量果梗的长和宽

% 计算区域属性

props = regionprops(Stem2, 'Area','BoundingBox','MajorAxisLength','MinorAxisLength');% doc regionprops

 % 提取最小外矩形的长轴和短轴

MajorLength=props.MajorAxisLength;%估计果梗长度

MinorLength=props.MinorAxisLength;%估计果梗直径

% 提取最小面积的矩形

minAreaRect = props(1).BoundingBox;

% 绘制最小外矩形

rectangle('Position', minAreaRect, 'EdgeColor', 'r'),title('绘制最小外接矩形');%绘制最小外接矩形

%%https://www.mathworks.com/help/images/ref/regionprops_zh_CN.html

figure,

subplot(2,2,1),imshow(I),title('原始图像');

subplot(2,2,2),imshow(obj),title('二值图像');

subplot(2,2,3),imshow(FP),title('库尔勒香梨边缘图像');

subplot(2,2,4),imshow(Stem2),title('库尔勒香梨果梗二值图像');

三、程序部分运行结果

四、总结

    本次果梗提取和测量,充分利用MATLAB中内置函数imopen、imtool和imhist各自特点对彩色图像进行分析,确定了最优分割方案,获得了较好分割效果,对其它水果果梗检测也具有一定参考价值。

五、原始图像

如果觉得本案例对大家今后的编程有帮助,请点赞和收藏。如有改进意见可以与我联系,谢谢!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com