2012-06-06 39 views
2

我想從MATLAB中的文件夾中讀取RGB圖像(.jpg),掃描圖像的每個像素並檢查它是否具有特定顏色(例如if它是紫羅蘭色:R 128,G 0, B 255)並計算有多少像素具有這種特定顏色。在matlab中針對特定rgb值逐個像素檢查圖像

你有什麼想法嗎?

+0

這是一門功課?如果是這樣,請將它重新標記爲家庭作業。 – petrichor

+0

沒有它不是一個家庭作業..是個人項目的一部分 – user1439660

+0

@ user1439660:而不是在RGB中進行顏色比較,你可以轉換到不同的顏色空間來選擇你的顏色。這樣的事情:[如何將RGB圖像轉換爲灰度但保留一種顏色?](http://stackoverflow.com/a/4064205/97160) – Amro

回答

2

假設圖像加載到變量命名爲A

pixelMask = A(:,:,1) == 128 & A(:,:,2) == 0 & A(:,:,3) == 255; 
count = nnz(pixelMask); 

另一種方法是使用bxsfun和辛格爾頓擴展:

pixel = cat(3,128,0,255); 
S = all(bsxfun(@eq, A, pixel), 3); 
count = nnz(S); 
+2

在第二種解決方案中,您可以這樣寫:'S = all bsxfun(@eq,A,pixel),3);'而不是 – Amro

+0

@Amro,好主意 –