我想從MATLAB中的文件夾中讀取RGB圖像(.jpg),掃描圖像的每個像素並檢查它是否具有特定顏色(例如if它是紫羅蘭色:R 128,G 0, B 255
)並計算有多少像素具有這種特定顏色。在matlab中針對特定rgb值逐個像素檢查圖像
你有什麼想法嗎?
我想從MATLAB中的文件夾中讀取RGB圖像(.jpg),掃描圖像的每個像素並檢查它是否具有特定顏色(例如if它是紫羅蘭色:R 128,G 0, B 255
)並計算有多少像素具有這種特定顏色。在matlab中針對特定rgb值逐個像素檢查圖像
你有什麼想法嗎?
假設圖像加載到變量命名爲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);
在第二種解決方案中,您可以這樣寫:'S = all bsxfun(@eq,A,pixel),3);'而不是 – Amro
@Amro,好主意 –
這是一門功課?如果是這樣,請將它重新標記爲家庭作業。 – petrichor
沒有它不是一個家庭作業..是個人項目的一部分 – user1439660
@ user1439660:而不是在RGB中進行顏色比較,你可以轉換到不同的顏色空間來選擇你的顏色。這樣的事情:[如何將RGB圖像轉換爲灰度但保留一種顏色?](http://stackoverflow.com/a/4064205/97160) – Amro