一、實驗目的:熟悉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');
運行結果截圖:
