2011-12-23 9 views
1

私はちょうどMATLAB Projectを試し始めます。私は赤、緑、青の色を分けていました。 これは私の関数である: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  

は今、私は何をするだろう、3色(ピンク、イエロー、オレンジ)を分離したいですか?誰でもこれについて知っていますか?本当にありがとう。

+0

ありがとうございます。 – Nothing

+0

正確には、3つの色を「分離」することはどういう意味ですか? – Predictor

答えて

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のような別の色空間を作成し、別々のチャンネルを表示します。

      「ピンク」、「黄色」のオブジェクトをすべて検索する場合は、セグメンテーションを行い、オブジェクトの色を確認する必要があります。

      正確に何が必要なのかを明確にしてください。

  • 関連する問題