一、实验目的:熟悉RGB空间的彩色图像分割方法
二、实验内容:以redflower.jpg图像为例,采用边界盒方法分割出该图像中的红色花朵,通过改变标准偏差的系数值,观察对分割结果产生的影响
原图:
1 rgb=imread('D:/redflower.jpg'); 2 figure, 3 subplot(2,2,1); 4 imshow(rgb) 5 rgb1=im2double(rgb); 6 r=rgb1(:,:,1);%图像的红色分量 7 g=rgb1(:,:,2);%图像的绿色分量 8 b=rgb1(:,:,3);%图像的蓝色分量 9 r1=r(130:195,86:170);%在?的红分量中选择一块矩形区域,由输入可知size(r)=(195 ,218),改变选择的行列可以改变标准偏差的标准值 10 r1_u=mean(mean(r1(:)));%计算该矩形区域的均值 11 [m,n]=size(r1);%得到该矩形区域的高度和宽度 12 sd1=0.0;;%该区域标准偏差变量 13 for i=1:m 14 for j=1:n 15 sd1=sd1+(r1(i,j)-r1_u)*(r1(i,j)-r1_u);%二重循环对差值的平均进行累加 16 end 17 end 18 r1_d=sqrt(sd1/(m*n));%计算得到该区域的标准偏差 19 r2=zeros(size(rgb1,1),size(rgb1,2)); 20 ind=find((r>r1_u-1.10*r1_d)&(r<r1_u+1.10*r1_d));%找到符合条件的点 21 r2(ind)=1;%将符合条件的点的灰度值赋值为1 22 subplot(2,2,2); 23 imshow(r2); 24 title('标准差为1.10'); 25 ind=find((r>r1_u-1.20*r1_d)&(r<r1_u+1.20*r1_d)); 26 r2(ind)=1; 27 subplot(2,2,3); 28 imshow(r2); 29 title('标准差为1.20'); 30 ind=find((r>r1_u-1.30*r1_d)&(r<r1_u+1.30*r1_d)); 31 r2(ind)=1; 32 subplot(2,2,4); 33 imshow(r2); 34 title('标准差为1.30');
运行结果截图: