雖然圖像分割將是正確的方式來對待分色,如果你的形象是簡單,你可以嘗試去做它的蠻力。
在這裏,轉換爲HSV將更容易處理圖像。
對於圖像的白色部分:
I=imread('ball.jpg');
H=rgb2hsv(I);
% separate dimensions
h=H(:,:,1);
s=H(:,:,2);
v=H(:,:,3);
% color conditions
v(v<0.8 | s>0.7 | h>0.7)=NaN;
h(isnan(v))=NaN;
s(isnan(v))=NaN;
% convert image back
W=cat(3,h,s,v);
White_image=hsv2rgb(W);
figure; imagesc(White_image);
![enter image description here](https://i.stack.imgur.com/iB8pu.jpg)
而對於棕色部分:
% separate dimensions
h=H(:,:,1);
s=H(:,:,2);
v=H(:,:,3);
% color conditions
v(s<0.6 | v>0.8)=NaN;
h(isnan(v))=NaN;
s(isnan(v))=NaN;
% convert image back
B=cat(3,h,s,v);
Brown_image=hsv2rgb(B);
figure; imagesc(Brown_image); axis off
![enter image description here](https://i.stack.imgur.com/fj3jc.jpg)
有許多基於顏色的圖像分割方法,你可以使用kmeans [示例](https://www.mathworks.c OM /幫助/圖像/示例/色基分割-使用-k均值-clustering.html)。搜索谷歌更多。 – user2999345
要多少組要分開您的照片?總是2? –
查看相關的QA:[RGB值基本顏色名稱](http://stackoverflow.com/a/37476754/2521214),以便輕鬆入侵,但基本上您想要執行基於顏色的分割。它與洪水填充類似,但當基於2個閾值(絕對和相對)的任何一種顏色離開始點顏色或其鄰居太遠時停止。由於您需要投資回報率,因此您可以直接填寫/標註原始圖片。 – Spektre