2011-12-23 171 views
1

我剛開始嘗試MATLAB項目。我曾經分開紅色,綠色和藍色的顏色。 這是我的函數:使用MATLAB分離圖像顏色

function x = colorsep(b) % 
n = 256; % color is from 0->255, so it has 256 
a = imread('peppers.png'); 


b=im2uint8(a); 
x=figure; % create picture to put the image 


subplot(2,2,1); %(2 rows, 2column, cell ti 1) 
imshow(b),title('Full Color'); 


colorlist = {'Red','Green','Blue'}; 


gr = 0:1/(n-1):1; 


for k=1:3 

    cMap = zeros(n,3); 
    cMap(:,k) = gr; 
    subplot(2,2,k+1); 
    imshow(ind2rgb(b(:,:,k),cMap)); %ind2r = index to rgb 
    title(colorlist{k}); 
end 
end  

現在我要分開三種顏色(粉紅色,黃色,橙色),我該怎麼辦?任何人都知道這個?非常感謝。

+0

感謝您的投票,沒有任何推薦。 – Nothing 2011-12-23 08:37:12

+0

什麼,確切地說,你的意思是「分開」三種顏色? – Predictor 2011-12-23 14:41:59

回答

4

這個問題是不正確的。在計算機的圖像由3個顏色通道

  • 綠色

你在做什麼這裏正呈現出單通道,與對應於它的顏色表。 順便說一句,該顏色映射是unnessecary,並可以顯示它像(更自然)

function colorsep() % 
    a = imread('peppers.png'); 
    colorlist = {'R','G','B'};  
    subplot(2,2,1); 
    imshow(a); 
    for k=1:3 
     subplot(2,2,k+1); 
     imshow(a(:,:,k)); 
     title(colorlist{k}); 
    end 
end 

enter image description here

如果你想用另一種顏色空間分開,你應該首先將其轉換爲另一個色彩空間 - 如LAB,然後分別顯示頻道。

如果您想要查找所有「粉紅色」,「黃色」對象,則應該執行分割,並檢查對象是否意味着顏色。

請說清楚你到底想要什麼。