基于MATLAB的苹果花图像识别

苹果花的提取采用图像处理与背景分割技术,首先批处理读取图片,提取彩色图像的RGB三个通道。在图片中心位置(即所需提取的苹果花所在位置)取一中心横线,表示出三通道的具体变化趋势与大小,通过判定两条相距最远的通道曲线,利用三通道相减得出效果最好的通道图。利用线性运算提高通道图的亮度。根据通道图的直方图,选取最佳阈值对图片进行二值化处理。鉴于所提取目标呈现白色,故对图片进行取反。又图片取自自然场景,噪声区域面积较大,故先对图片进行均值滤波处理,再利用bwareaopen函数,去除二值图像中的噪音区域。最后将图像的每个像素值乘以对应的颜色通道(红、绿、蓝),然后将结果合并为一个新的图像,即为提取图像。

1.彩色图像三通道提取

Ir=I(:,:,1);% 提取图像的红色通道,并将其存储在变量Ir中

Ig=I(:,:,2);% 提取图像的绿色通道,并将其存储在变量Ig中

Ib=I(:,:,3);% 提取图像的蓝色通道,并将其存储在变量Ib中

2.获取三通道对比图

[i,j]=size(I); % 获取图像的大小(高度和宽度)

figure,imtool(I)

line1=I(1,:);% 提取图像的第一行作为线条1的数据

line2=I(2,:);% 提取图像的第二行作为线条2的数据

line3=I(3,:);% 提取图像的第三行作为线条3的数据

hold on % 保持当前图形的绘制状态

plot(line1,'r');% 在当前图形中绘制线条1,颜色为红色

plot(line2,'g');

plot(line3,'b');

hold off % 关闭当前图形的绘制状态

figure('name','绘制彩色图像横穿第i/2行的rgb通道的灰度值');

% 确保提取的行和列的范围在图像的大小范围内

i1= min(max(i/2,1),i);

j1= min(max(j/2,1),j);

i2=floor(i1);%小数取其整数部分

j2=floor(j1);

k=min(i,j);

line4=I(i2,1:k,1);%提取图像的第i行,从第1列到第j列,作为线条4的数据

line5=I(i2,1:k,2);

line6=I(i2,1:k,3);

plot(line4,'r');

hold on;

plot(line5,'g');

hold on;

plot(line6,'b');

hold on;

3.获取效果最好的通道图

figure,

%Irg=Ir-Ig;

%Irb=Ir-Ib;

Igb=3*Ig-Ib;

figure,imshow(Igb);

figure,imhist(Igb);

4.阈值分割(二值化)

bw=im2bw(Igb,110/255);

figure,imshow(bw);

5.二值图像取反

bw=imcomplement(bw);

6.均值滤波

% 设置均值滤波

H3 = fspecial('average',[3,3]);

H5 = fspecial('average',[5,5]);

H7 = fspecial('average',[7,7]);

H9 = fspecial('average',[9,9]);

% 利用滤波对图像进行处理

r3 = imfilter(bw,H3);

r5 = imfilter(bw,H5);

r7 = imfilter(bw,H7);

r9 = imfilter(bw,H9);

% 展示结果

subplot(2,3,1);imshow(bw);title('原图');

subplot(2,3,2);imshow(r3);title('3*3均值滤波结果');

subplot(2,3,3);imshow(r5);title('5*5均值滤波结果');

subplot(2,3,4);imshow(r7);title('7*7均值滤波结果');

subplot(2,3,5);imshow(r9);title('9*9均值滤波结果');

7.结果处理

bw=bwareaopen(r3,80000);

%bw=im2bw(Igb,graythresh(Igb));

%figure,imshow(bw);

%bw=imcomplement(bw);

objm=uint8(bw).*Ir;

objn=uint8(bw).*Ig;

objl=uint8(bw).*Ib;

obj=cat(3,objm,objn,objl);

figure,imshow(obj);

注:GUI界面代码会在后续文章中给予参考

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值