数字图像处理实验九
(彩色图像处理)
实验内容:
利用边界盒分割方法对彩色图像进行分割。
实验步骤:
以honghua.jpg图像为例,采用边界盒方法分割出该图像中的红色花朵,在选定均值的况下通过改变标准偏差的系数值,观察对分割结果产生的影响。
xlabel('原始图像')
rgb1=im2double(I);
r=rgb1(:,:,1);%图像的红色分量
g=rgb1(:,:,2);%图像的绿色分量
b=rgb1(:,:,3);%图像的蓝色分量
r1=r(130:195,86:170);%由输入可知size(r)=(195 ,218),改变选择的行列可以改变标准偏差的标准值
r1_u=mean(mean(r1(:)));%计算该矩形区域的均值
[m,n]=size(r1);%得到该矩形区域的高度和宽度
sd1=0.0;%该区域标准偏差变量
for i=1:m
for j=1:n
sd1=sd1+(r1(i,j)-r1_u)*(r1(i,j)-r1_u);%二重循环对差值的平均进行累加
end
end
r1_d=sqrt(sd1/(m*n));%计算得到该区域的标准偏差
r2=zeros(size(rgb1,1),size(rgb1,2));
ind=find((r>r1_u-1.10*r1_d)&(r<r1_u+1.10*r1_d));%找到符合条件的点
r2(ind)=1;%将符合条件的点的灰度值赋值为1
subplot(2,2,2);
imshow(r2);
xlabel('标准差为1.10');
ind=find((r>r1_u-1.20*r1_d)&(r<r1_u+1.20*r1_d));
r2(ind)=1;
subplot(2,2,3);
imshow(r2);
xlabel('标准差为1.20');
ind=find((r>r1_u-1.30*r1_d)&(r<r1_u+1.30*r1_d));
r2(ind)=1;
subplot(2,2,4);
imshow(r2);
xlabel('标准差为1.30');
效果图:
问题讨论:
在一幅RGB图像中分割某个指定的颜色区域(bbox)的物体。给定一个感兴趣的有代表性色彩的彩色样点集,可得到我们希望分割的颜色的“平均”估计。平均彩色用RGB向量α \alphaα表示,分割的目的是将图像中每个RGB像素分类,即在指定的区域内是否有一种颜色。为了执行这一比较,需要有相似性度量:欧氏距离和曼哈顿距离。