图像目标分割与提取
实验目的
彩色图像中目标的分割与提取。
实验要求
1)彩色图像的色彩模型,各通道的读取与显示,色彩模型转换;
2)彩色图像分割;
3)彩色图像目标提取。
实验步骤
1) 读入一幅彩色图像I1,读取RGB、HSI色彩模型的各通道图像,并显示;
2) 对彩色图像I1图进行目标分割,并显示结果;
3) 对彩色图像I1进行目标提取,并显示结果。
RGB = imread('D:\桌面\图像处理\实验\1.jpg');
R = RGB(:,:,1);
G = RGB(:,:,2);
B = RGB(:,:,3);
figure(1);
subplot(2,2,1);
imshow(RGB);title('RGB');
subplot(2,2,2);
imshow(R);title('R');
subplot(2,2,3);
imshow(G);title('G');
subplot(2,2,4);
imshow(B);title('B');
rgb = im2double(RGB);
r = rgb(:, :, 1);
g = rgb(:, :, 2);
b = rgb(:, :, 3);
% 执行转换方程
num = 0.5*((r - g) + (r - b));
den = sqrt((r - g).^2 + (r - b).*(g - b));
theta = acos(num./(den + eps)); %防止除数为0
H = theta;
H(b > g) = 2*pi - H(b > g);
H = H/(2*pi);
num = min(min(r, g), b);
den = r + g + b;
den(den == 0) = eps; %防止除数为0
S = 1 - 3.* num./den;
H(S == 0) = 0;
I = (r + g + b)/3;
% 将3个分量联合成为一个HSI图像
hsi = cat(3, H, S, I);
h = hsi(:,:,1);
s = hsi(:,:,2);
i = hsi(:,:,3);
figure(2);
subplot(2,2,1);
imshow(hsi);title('HSI');
subplot(2,2,2);
imshow(h);title('H');
subplot(2,2,3);
imshow(s);title('S');
subplot(2,2,4);
imshow(i);title('I');
img = im2bw(RGB);
img = not(img);
figure,imshow(img);
[B,L] = bwboundaries(img);
figure,imshow(img);
hold on;
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2),boundary(:,1),'g','LineWidth',2);
end
结果
参考
https://blog.csdn.net/HXG2006/article/details/80407784