我有一個包含硬幣圖像的圖像。硬幣的形狀可以是長方形,正方形,圓形,橢圓形等。我想在硬幣上繪製一個矩形,並從背景中分割硬幣。我不能給出矩形的x或y值,因爲硬幣可能在圖像中的任何位置。有誰知道如何做到這一點?使用Matlab在對象上繪製矩形
-1
A
回答
0
首先閱讀MathWorks advice on pattern recognition。具體如何解決問題取決於很多事情,例如
除了硬幣,圖像還有什麼?
所有的硬幣是相同的顏色還是不同的顏色?
你是否有一組圖像與確定的硬幣位置?
1
我在下面的答案假設你已經確定了硬幣,並且你有一個清理過的圖像(二進制將是很好的),你可以使用。
coin=load('penny.mat'); %#load matlab's stock image
img=zeros(256,256);
img(65:192,65:192)=coin.P;%# this is an approximation to the sort of image that I think you have
現在我們需要才能知道邊界矩形的大小圖像的範圍。由於在其他地方存在圖像和零點的情況下,數組不爲零,因此以下給出了邊的長度。
sideX=sum(sum(img,1)>0);
sideY=sum(sum(img,2)>0);
使用kmeans
找到圖像的質心。
[indX,indY]=ind2sub(size(img),find(img(:)>0));
[~,centroid]=kmeans([indX,indY],1);
現在最後覆蓋在圖像頂部的矩形。
imagesc(img);colormap(gray);hold on
rectangle('Position',([centroid,sideX,sideY]-[sideX,sideY,0,0]/2),'EdgeColor','w');hold off
結果:
如果你有一個嘈雜的圖像(即,它不是均勻零圖像之外,那麼你就必須設定一個閾值,以找到邊框)
相關問題
- 1. Matlab:使用tabpanel繪製矩形
- 2. 如何使用matlab在圖像上繪製矩形?
- 3. 使用MATLAB在圖像上繪製矩形框
- 4. Matlab - 不使用矩形函數繪製矩形
- 5. 圖形繪製混淆矩陣在MATLAB
- 6. 在圖像中繪製矩形 - Matlab
- 7. 在JPanel上繪製矩形
- 8. 在ImageVIew上繪製矩形
- 9. 在矩形上繪製圓形
- 10. 在圓形公式上繪製矩形
- 11. 繪製3D空間中的矩形MATLAB
- 12. 如何使用react在圖像中的對象上繪製矩形?
- 13. 繪製矩形上Mapbox GL
- 14. 在matlab上繪製矩陣的點
- 15. 如何使用特徵繪製對象的矩形(ORB)
- 16. 即使未在Box2d中添加對象,也會繪製矩形
- 17. 使用D3.js繪製矩形矩陣
- 18. 在Mac上的JFrame上繪製矩形
- 19. 在Matlab中繪製矩陣
- 20. 繪製矩形
- 21. 在圖框上繪製矩形 - 如何限制矩形區域?
- 22. 在矩形內繪製等距矩形
- 23. 在android中使用min3d繪製矩形
- 24. 在Java中使用JPanel繪製矩形
- 25. 使用javascript在HTML5視頻上使用javascript繪製矩形
- 26. 如何使用svg在矩形內繪製矩形?
- 27. 使用畫布在矩形內繪製矩形?
- 28. 繪製矩形,然後繪製縮小矩形在先前的矩形內
- 29. MATLAB ::在MATLAB上的圖像(矩陣)上繪製數字
- 30. 在uEye相機c上繪製矩形#
它是一個二進制圖像?即硬幣在其他地方和零的地方?還是可以轉換成一個? – abcd 2011-04-07 13:50:06
@R。 M.原始的一個是彩色圖像,我也有該圖像的二進制版本。 – 2011-04-07 14:55:03
當你說你想在硬幣上畫一個矩形時,這是否意味着你希望選擇一個包含硬幣的小區域,然後在這個較小的圖像上進行分割? – Ghaul 2011-04-07 17:05:52