花如月 发表于 2007-10-17 17:32

回复 #15 eight 的帖子

二值化后,白色区域的像素值都是1。乘不乘结果不影响吧?我没有按照形心的公式做。求得是所有像素位置的均值。不过在这种特殊情形下,按照形心的公式写出来后,还是均值。所以我认为结果应该是对的,红心画得有些大(对齐方式没修改,真正的点应该在红心的左上角)。

   如果有错,希望路过的指出

eight 发表于 2007-10-17 17:36

哦,对。rows 和 cols 是位置,vals 是值,我搞反了,呵呵

[ 本帖最后由 ChaChing 于 2010-4-18 15:25 编辑 ]

axz707 发表于 2007-10-17 18:22

这里面m和n都有什么用啊   我换了图像,误差怎么这么大啊

eight 发表于 2007-10-17 18:33

原帖由 axz707 于 2007-10-17 18:22 发表 http://www.chinavib.com/forum/images/common/back.gif
这里面m和n都有什么用啊   我换了图像,误差怎么这么大啊

m 和 n 没有用

误差这么大,你可以先读懂花版主的代码然后自行修改。我猜是黑白搞反的问题,只要反色一下就ok了

axz707 发表于 2007-10-17 18:55

嘿嘿 ,没注意,谢谢啊~~
这个不能以形心为中心,建立极坐标吗?

[ 本帖最后由 ChaChing 于 2010-4-18 15:28 编辑 ]

花如月 发表于 2007-10-17 18:56

答案当然是肯定的,办法都是人想的,自己多摸索!

[ 本帖最后由 ChaChing 于 2010-4-18 15:32 编辑 ]

axz707 发表于 2007-10-17 19:33

为什么不能啊:@Q   是这种做法根本不能实现吗?

花如月 发表于 2007-10-17 19:42

:@L 晕,答案是肯定的,当然是能了;@P

axz707 发表于 2007-10-17 19:48

噢,吓死我了 ,我还以为是肯定不能呢~~那我再研究研究,你再帮我改改吧:loveliness:

xjzuo 发表于 2007-10-17 23:22

这个问题我想了一下,可以用前面给出的公式求其形心,我的结果如下:
(其中我已经将图片改小了)
我把关键代码也顺便给出一下吧,以做参考:
area = sum(sum(im));
meanx = sum(sum(double(im).*x))/area;
meany = sum(sum(double(im).*y))/area;


[ 本帖最后由 ChaChing 于 2010-4-18 15:36 编辑 ]

eight 发表于 2007-10-17 23:40

对,这个就是按照形心计算公式直接求解的矢量化编程结果

[ 本帖最后由 ChaChing 于 2010-4-18 15:37 编辑 ]

axz707 发表于 2007-10-18 08:54

回复 #26 xjzuo 的帖子

麻烦你能不能把整个程序贴上来啊

花如月 发表于 2007-10-18 09:27

原帖由 axz707 于 2007-10-18 08:54 发表 http://www.chinavib.com/forum/images/common/back.gif
麻烦你能不能把整个程序贴上来啊
貌似你有些太懒惰了,前辈把核心代码都给你了。:@L

往我给你的那个完整的程序里套以下就可以了

axz707 发表于 2007-10-18 09:47

回复 #29 花如月 的帖子

你别老说我嘛~~:@( 我这么急,当然自己已经试过了,可是老出问题啊    以前我一点都不会matlab的。meanx = sum(sum(double(im).*x))/area;当中的x应该指的是横坐标吧?这还要定义吗?为什么我运行完了它说x没有定义呢?

eight 发表于 2007-10-18 10:17

以前没有学过matlab,但是因为现在你要使用,所以必须逼着自己去学,不然,人家给了答案你,有用吗?建议还是从头学起吧,在这里,你学到的是不仅仅是知识

[ 本帖最后由 ChaChing 于 2010-4-18 15:32 编辑 ]
页: 1 [2] 3
查看完整版本: 请问怎么求这个图片的形心和最小外接矩形框啊