我有一個灰色的水平圖像,並希望找到特定顏色(例如黑色)更密集的區域。由於這個問題是一個更大的項目的一部分,我需要用java編程,但我沒有找到一個合適的算法。如何在圖像中聚類相同的顏色
-1
A
回答
1
您應該使用K-Means來查找圖像中的簇。例如你的數據集應該是 位置X,Y,Z和灰色值。
然後運行多個k值的算法。並使用BIC評分來查找最佳羣集配置。
+0
因爲我在這個領域很年輕,你能給我一個程序來做這個或者一個代碼示例嗎? – user2724554
1
我建議您使用Matlab爲了您的第一步圖像處理。我寫了一個簡單函數來生成一個僞隨機圖像,然後我只考慮一個值超過閾值的像素。剩下的像素將被設置爲零。這是代碼:
image=randi([0 255],10); %Used to generate a 10x10 image with pixel values between [0-255]
[row,col]=size(image); % to calculate the size of the image;
image_output=zeros([row,col]); %We make an empty image with the same size than the origial
TH_value=100; %threshold value
index=find(image>TH_value); %searching for all the pixels with value>TH_value
n_idx=length(index); %number of pixels over TH_value
%no we have to replace in our empty new matrix only those pixels that have a value over the TH_value
for i=1:n_idx
[row, col, ~ ] = ind2sub(size(image), index(i)); %geting the coordinates for all values over TH_value
image_output(row,col)=image(row,col); %copying to the output matrix only the pixels over TH_value
end
image_output %in order to visualize the output image
將上面的代碼粘貼到Matlab中以查看它是如何工作的。這很簡單,但可以作爲開始。不要生成隨機圖像(請參閱代碼的第一行),您應該使用「imread」函數導入自己的圖像。
相關問題
- 1. 如何在單個圖像中聚集顏色?
- 2. 如何在opencv中爲圖像添加邊框,邊框顏色必須與圖像顏色相同
- 3. 如何在高圖中使用相同的懸停點顏色?
- 4. 如何在android.support.design.widget.NavigationView中設置相同顏色的圖標?
- 5. 相同的圖像數據看起來不同,相同的顏色地圖
- 6. 如何找到該圖像或多或少同色w.r.t顏色(色相)?
- 7. 如何在圖像中採樣顏色
- 8. 我如何在高圖中保持顏色相同
- 9. 變化的像素顏色值相同
- 10. Highcharts與餅圖切片顏色相同的圖例顏色
- 11. 如何替換圖像中的顏色?
- 12. 如何填充顏色完全像這個圖像的顏色?
- 13. 如何在VC++中使用不同顏色創建BitMap圖像?
- 14. Python中的聚類 - 圖像聚類
- 15. 對於非ggplot聚類圖,不同顏色(至少11個)
- 16. JavaScript隨機顏色爲所有類相同的顏色
- 17. python:如何設置3個子圖的相同顏色圖
- 18. 如何在圖像視圖中顯示色彩顏色
- 19. Excel中的顏色不同但顏色指數相同VBA
- 20. 如何在Java中爲折線圖生成相同亮度的不同顏色?
- 21. 獲取JPanel圖形顏色始終是相同的顏色
- 22. 如何獲取圖像中像素的顏色(加載灰色)?
- 23. 如何在圖像上設置顏色?
- 24. 如何使viewForHeaderInSection中的背景顏色與titleForHeaderInSection中的背景顏色相同?
- 25. 在海圖的傳說中,標籤顏色與形狀顏色相同
- 26. 如何更改matlab中聚類點的顏色
- 27. css給2類相同顏色
- 28. 如何在保存圖像的同時向圖像添加顏色條?
- 29. 不同的顏色與Photoshop或Web瀏覽器在相同的圖像
- 30. 如何獲取相同數據的相同背景顏色?
如果您想要java答案,請添加一個java標記。圖像的格式是什麼?它在一個文件中?你知道如何在Java中讀取文件嗎?你有沒有試過編寫任何代碼?如果是這樣,什麼? – doctorlove
如果你從圖像處理開始,我真的建議你開始在Matlab中編寫你的代碼,然後跳轉到另一種語言(在你的情況下是java) – karl71
你想要一個更粗糙的圖像量化?或基於灰度的圖像分割?如果你想根據色彩相似性進行分割,你應該檢查出mean-shift分割。看到http://stackoverflow.com/questions/4831813/image-segmentation-using-mean-shift-explained – Shai