我有一个包含硬币图像的图像。硬币的形状可以是长方形,正方形,圆形,椭圆形等。我想在硬币上绘制一个矩形,并从背景中分割硬币。我不能给出矩形的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