图像阈值分割(一)

       读入一张水果彩色数字图像,然后对其进行水果和果梗进行分割。算法思想:通过提取红、绿和蓝各分量图像,发现其双峰特性不明显。使用improfile绘制水果图像中穿过背景和水果的R、G 、B分量的灰度值曲线,从improfile曲线可以看出,在水果所在位置R分量曲线和B分量的灰度值差异大,而背景差异小。因而,选择r-b进行代数运算,然后进行对比度增强,再使用最大类间方差法进行二值化,最后进行彩色图像背景分割。

详细代码如下:

clear all;
close all;
clc;
imtool close all;
I=imread('fruit1.jpg');%读入水果彩色图像
imshow(I);
Ir=I(:,:,1);%提取R分量图像
figure,imhist(Ir),title('红色分量灰度直方图');
Ig=I(:,:,2);%提取G分量图像
figure,imhist(Ig),title('绿色分量灰度直方图');
Ib=I(:,:,3);%提取B分量图像
figure,imhist(Ib),title('蓝色分量灰度直方图');
%通过以上分析,各分量灰度直方图双峰特征不明显
imtool(I);
x = [1     459];  
y = [190   190];  
improfile(I,x,y),grid on  %使用improfile绘制水果图像中穿过背景和水果的R、G 、B分量的灰度值曲线
Irb=Ir-Ib;                %从improfile曲线可以看出,在水果所在位置R分量曲线和B分量的灰度值差异大,而背景差异小。
Irb=imadjust(Irb);%对图像进行对比度调节
figure,imshow(Irb);
figure,imhist(Irb);
bw=im2bw(Irb,graythresh(Irb));%利用最大类间方差法进行图像分割
bw2=imfill(bw,'holes');
figure,imshow(bw2);
objFruit=uint8(bw2).*I;
figure,imshow(objFruit);%将水果从图像中分割出来
objStem=uint8(bw2-bw).*I;
figure,imshow(objStem);%将果蒂从图像中分割出来
figure('Name','彩色图像阈值分割','NumberTitle','off');
subplot(3,2,1),imshow(I),title('水果彩色图像');
subplot(3,2,2),imshow(Irb),title('R-B图像');
subplot(3,2,3),imshow(bw2),title('模版1');
subplot(3,2,4),imshow(bw2-bw),title('模版2');
subplot(3,2,5),imshow(objFruit),title('水果图像');
subplot(3,2,6),imshow(objStem),title('果蒂图像');
%% 本程序在MATLAB 2018b 下调试运行

最后运行结果如下图所示:

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值