一.实验题目
参照下图编程实现RGB与HIS彩色空间分割,并对分割结果进行比较。
二.实验分析
本实验主要考查彩色图像分割,由于RGB图像、HIS图像间的相互转换过程
比较复杂,实现起来代码比较长,本实验通过rgb2hsv进行转换,HIS和HSV图像
还是有一定的区别的,但影响不是很大。处理过程大致如下:
①将rgb图像转换成his图像
②将his的h和s分量做点乘运算
③设置参数,生成阈值图像
④将阈值图像与rgb,his图像相乘便得到分割图像。
三.实验程序
clear;clc; I=imread('images_chapter_06\Fig6.28(b).jpg'); subplot(2,2,1);imshow(I);xlabel('original image'); I1=rgb2hsv(I);scale=0.5; I2=I1(:,:,1).*I1(:,:,2); m=I2>max(max(I2))*scale; for u=1:3 I(:,:,u)=I(:,:,u).*uint8(m); end % T=max(I(:))*scale;I11=double(I); % I11(:,:,1)=I11(:,:,1).*double(I11(:,:,1)>T); % I11(:,:,2)=I11(:,:,2).*double(I11(:,:,2)>T); % I11(:,:,3)=I11(:,:,3).*double(I11(:,:,3)>T); subplot(2,2,3);imshow(I,[]);xlabel('RGB segmentation'); I3=double(m); I1(:,:,1)=I1(:,:,1).*I3; I1(:,:,2)=I1(:,:,2).*I3; I1(:,:,3)=I1(:,:,3).*I3; subplot(2,2,4);imshow(I1,[]);xlabel('HSV segmentation'); % figure;imshow(I11,[]);
四.实验结果
由于红色区域亮度比较大,且和其他部分相差较大,因此,经过运算就将红色部分分割出来了。
在进行rgb分割时也可以不借助hsv的分量进行处理,用rgb的最大亮度的scale倍作为分割点。