请问怎么求这个图片的形心和最小外接矩形框啊
请问怎么求这个图片中人体的形心和最小外接矩形框啊,并把它们在图上标出来,拜托啊~~ 请搜索版面,之前讨论过类似的问题[ 本帖最后由 ChaChing 于 2010-4-18 11:54 编辑 ] 可是没有给出程序啊麻烦你给出具体的程序可以吗 你觉得这个程序很容易写出来么?
思路都是一样,有了思路才好写程序。何况这种问题也没有通用的程序,都是需要加些经验的成分在里边。之前论坛有一个求杯子里水高度的问题。看看别人的思路,自己慢慢摸索吧。
[ 本帖最后由 ChaChing 于 2010-4-18 15:22 编辑 ] 原帖由 axz707 于 2007-10-16 12:24 发表 http://www.chinavib.com/forum/images/common/back.gif
可是没有给出程序啊麻烦你给出具体的程序可以吗
help find
请多看看本版各个置顶帖,指望别人代替你完成所有东西根本不现实
[ 本帖最后由 eight 于 2007-10-16 12:52 编辑 ] 求形心的这么写好像不可以啊,版主帮忙看一下啊
im=imread('b.bmp'); =size(im); sumxc=0; sumyc=0; sum=0;
for i=1:m, for j=1:n
if pic(i,j)>0
sumxc=sumxc+pic(i,j)*i; sumyc=sumyc+pic(i,j)*j; sum=sum+pic(i,j);
end
end; end
xc=sumxc/sum; yc=sumyc/sum;
figure,imshow(im); hold on; plot(xc,yc,'r+');
[ 本帖最后由 ChaChing 于 2010-4-18 15:31 编辑 ] 读取出来的 im 就是图像的像素值,pic 是什么东西?
基本思想是这样子,不过在 matlab 里面,用循环做的话很慢的。建议看看置顶帖,如何进行矢量化编程
[ 本帖最后由 ChaChing 于 2010-4-18 15:24 编辑 ] 哦忘了改了pic应该改成im,可是也不对啊
这个结果出来的不是人体的形心啊,到底哪错了呢
[ 本帖最后由 eight 于 2007-10-17 14:59 编辑 ] 不要死套公式,那样肯定是有问题的
可以考虑这样做:找出白像素对应的所有坐标,求出所有x和y的平均值。作为行心的坐标,这样误差应该是可以接受的。
个人意见仅供参考
[ 本帖最后由 ChaChing 于 2010-4-18 15:26 编辑 ] 这个问题以前好象讨论过: 先用edge求出轮廓,再求轮廓各点坐标,然后求形心(坐标的平均). 原帖由 xjzuo 于 2007-10-17 15:16 发表 http://www.chinavib.com/forum/images/common/back.gif
这个问题以前好象讨论过: 先用edge求出轮廓
其实用 find 也是可以的。这个问题之前的确讨论过,好像是飞机模型,现在只不过换了人体而已,建议楼主翻一下旧帖 我不知道这两个函数啊~以前确实有过飞机模型的那个,可是没讨论出结果来啊 原帖由 axz707 于 2007-10-17 15:45 发表 http://www.chinavib.com/forum/images/common/back.gif
我不知道这两个函数啊~以前确实有过飞机模型的那个,可是没讨论出结果来啊
不太可能啊,没见过以前的讨论。是按照我前边的思路,用eight说的find做的。
clear,clc;
I=imread('person.jpg');
I=rgb2gray(I);
BW=im2bw(I,graythresh(I));
=size(BW);
=find(BW);
x=round(mean(cols));y=round(mean(rows));
imshow(BW),hold on;axis on
text(x,y,'\heartsuit','Color','red','fontsize',20);
x=sort(cols);y=sort(rows);
rectangle('Position',,...
'LineWidth',2,'Edgecolor','b');
效果还凑合,可能形心会有误差 哈哈 谢谢谢谢!!!!:lol
回复 13楼 花如月 的帖子
形心不正确是否没有乘以坐标位置了?估计 vals 是要与 cols 和 rows 相乘的[ 本帖最后由 ChaChing 于 2010-4-18 15:38 编辑 ]