24小时热门版块排行榜    

查看: 2458  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

Allen2014

铜虫 (小有名气)

[求助] 如何求下面这幅图像的质心?

前言:现在有一幅图像,图像包含很多小五角星,现在需要用matlab求出每个小五角星的质心,然后用记号标记下,同时要算出每个小五角星的质心,然后将所有小五角星的质心坐标数值保存起来。还望各位指导下,给个思路,谢谢!

1.jpg
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Allen2014

铜虫 (小有名气)

引用回帖:
6楼: Originally posted by hnexplorer at 2013-05-09 15:44:23
th = sum(im()/prod(size(im));
bw = im>th
这两句是根据你给的图片,采取的一个简单求取阈值的方法,bw是二值图。

谢谢!我还有2个问题。
第一:我运行算法后,发现在图像下边缘上有一些干扰点(不是半截五角星,而是一些像污点一样的东西),这些干扰点的质心也被标记出来了,这些质心是我不想要的,那我是不是在进行标记之前,先要进行形态学操作,过滤掉这些干扰点?
第二:小五角星的质心求出以后,所有质心的坐标数据保存在centriod数组中,这些坐标点数值的参考原点是在图片的左上角还是左下角?
谢谢!
7楼2013-05-10 08:50:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


感谢参与,应助指数 +1
Allen2014: 金币+1 2013-05-09 10:17:15
用阀值二值化一下,然后直接求质心就可以了
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2013-05-07 22:04:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Allen2014

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by libralibra at 2013-05-07 22:04:00
用阀值二值化一下,然后直接求质心就可以了

谢谢你,能具体给我说下思路吗?需要用循环吗?
3楼2013-05-07 22:23:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hnexplorer

金虫 (小有名气)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
Allen2014: 金币+3, ★★★很有帮助 2013-05-09 10:12:06
为了简化处理,将图片的白边缘裁剪掉了,centroids保存的就是所有质心坐标。下面是示意代码
im = imread('test3.jpg');
th = sum(im()/prod(size(im));
bw = im>th;
s  = regionprops(bw, 'centroid');
centroids = cat(1, s.Centroid);
imshow(bw)
hold on
plot(centroids(:,1), centroids(:,2), 'b*')
hold off
4楼2013-05-08 18:28:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见