学习目标:背景分离和RGB等特征提取
1.简述
叶片RGB图像背景精确分离的方法,包括以下图像背景分离方法:S1:选取叶片,所得到的原始图像;S2:采用MATLAB 2016R软件将RGB图像转化为HSV图像,以饱和度0.190.21为界限,将小于界限的图像明度调整为0,并转化为灰度图;S3:用edge函数canny算子对图像边缘进行检测提取;S4:对图像进行膨胀操作并填补边缘缝隙;S5:对空隙填充并采用菱形结构元素对图像进行平滑;S6:将平滑后的图像经中值滤波去除冗余信息;S7:运用bwlabe函数寻找8联通成份并进行二值化处理;S8:将处理后的图像保存为jpg格式图像;本发明对单色叶,杂色叶,多色叶均有最佳的处理效果.
2.代码
clear all;
close all
clc
I = imread('01.jpg');
whos
%%
I_Gray=rgb2gray(I);
imhist(I_Gray);
I_Bw=im2bw(I,140/255);
figure;
subplot(1,3,1),imshow(I),title('原图');
subplot(1,3,2),imshow(I_Gray),title('灰度图');
subplot(1,3,3),imshow(I_Bw),title('二值图');
I_R=I(:,:,1);
I_G=I(:,:,2);
I_B=I(:,:,3);
%% R-B背景分割
I_RB=I_R-I_B;
figure,imhist(I_RB);
I_Bw2=im2bw(I_RB,50/255);
I_Bw2Fill=imfill(I_Bw2,'holes');
figure;
imshow(I_RB),title('R-B');
imshow(I_Bw2),title('二值图');
imshow(I_Bw2Fill),title('填充点');
I_R1=uint8(I_Bw2Fill).*I_R;
I_G1=uint8(I_Bw2Fill).*I_G;
I_B1=uint8(I_Bw2Fill).*I_B;
I_rgb=cat(3,I_R1,I_G1,I_B1);
figure,imshow(I_rgb);
%% RGB特征提取
I_r=I_rgb(:,:,1);
I_g=I_rgb(:,:,2);
I_b=I_rgb(:,:,3);
I_rr=I_r(I_r>0);
I_gg=I_g(I_g>0);
I_bb=I_b(I_b>0);
r_mean=mean(I_rr),
g_mean=mean(I_gg),
b_mean=mean(I_bb),
%% hsv特征提取
I_hsv=rgb2hsv(I_rgb);
figure,imshow(I_hsv),title('hsv图');
I_h=I_hsv(:,:,1);
I_s=I_hsv(:,:,2);
I_v=I_hsv(:,:,3);
h=I_hsv;h(:,:,[2 3])=0;
s=I_hsv;s(:,:,[1 3])=0;
v=I_hsv;v(:,:,[1 2])=0;
figure,subplot(1,3,1);imshow(h);
subplot(1,3,2);imshow(s);
subplot(1,3,3);imshow(v);
I_hh=I_h(I_h>0);
I_ss=I_s(I_s>0);
I_vv=I_v(I_v>0);
h_mean=mean(I_hh),
s_mean=mean(I_ss),
v_mean=mean(I_vv),
3.运行结果
4.参考文献
[1]江海东,陈卫平,陈郑盟,等.一种开放环境下多色叶片RGB图像背景精确分离的方法:CN202011293649.9[P].CN112529922A.