使用MATLAB提取圖片中特定顏色

在做畢設的過程中,用到了這方面的知識,即把TIFF格式圖片中含有某一特定顏色的部分提取出來,圖片的其他部分變爲白色。
提取過程大致包括以下幾步:
(1)先將rgb圖像轉換爲hsv圖像;

rgb轉換到hsv的公式如下:
在這裏插入圖片描述
(2)將圖像轉換爲hsv之後,先創建一個白色圖像,再根據需要,通過控制H通道來提取特定顏色的部分,並將提取出來的部分複製到剛剛創建的白色圖像上;

下圖是H通道控制不同顏色時的取值範圍:
在這裏插入圖片描述
(3)最後將hsv圖像轉換至rgb圖像進行顯示。

下面以提取圖片中的綠色爲例,以下是用MATLAB實現的代碼:

clear all;
clc;
flag = imread('圖片名稱.tif'); % 讀取圖像       
figure;
imshow(flag); % 展示圖像     
% 將圖像的rgb色彩空間轉化至hsv色彩空間
flag_hsv = rgb2hsv(flag);      
% 創建一個白色圖像,將特定顏色提取到此處
flag_new = 255*ones(size(flag));
% 將該圖像轉至hsv色彩空間
flag_new_hsv = rgb2hsv(flag_new);
% 找出圖像中綠色的像素
[row, col] = ind2sub(size(flag_hsv),find(flag_hsv(:,:,1)>0.12...
& flag_hsv(:,:,1)< 0.6 & flag_hsv(:,:,2)>0.16 & flag_hsv(:,:,3)>0.18));
% 將圖像中的綠色像素複製到剛纔新建的白色圖像中
for i = 1 : length(row)
    flag_new_hsv(row(i),col(i),:) = flag_hsv(row(i),col(i),:);
end
% 將提取出來的綠色,轉化至rgb空間,進行展示
flag_green = hsv2rgb(flag_new_hsv);
figure
imshow(flag_green)

以上就是提取圖像中特定顏色的主要原理以及編程實現過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章