如何求图像中椭圆的圆心坐标???

robustkele 2007-08-09 09:41:47
如何求得一幅图像中的椭圆圆心的坐标啊,或者封闭曲线的中心坐标也可以。
小弟现在急需这方面的算法或者matlab程序,谢谢了!!!
我的邮箱是robust@126.com
...全文
3747 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackiesun 2008-09-25
  • 打赏
  • 举报
回复
完全同意六楼的观点。楼主是说封闭曲线,不只是椭圆。
所以,求重心是王道,很简单。Hu不变矩的一阶矩就是重心。
楼主勤奋点,别想着要源代码
yuanye0814 2008-09-20
  • 打赏
  • 举报
回复
直接用regionprops试试
virtualliu 2008-09-19
  • 打赏
  • 举报
回复
学习
duyuyu 2008-07-04
  • 打赏
  • 举报
回复
个人认为9楼的算法欠考虑,按照右,右下,下面,左下的顺序搜索下一边界点,对于较复杂的形体(比如凹的),算法会有错误,而且,即使是在9楼的图中,当搜索到下边界的时候也有麻烦。

个人认为,应该使用前一点,当前点的位置关系来决定下一点的搜索顺序。
另外,还要考虑要求的是正向边界(逆时针)还是反向边界(顺时针)。
duke_cu 2008-06-19
  • 打赏
  • 举报
回复
% matlab code?
% find edges
edge();
% mean value of all white pixels
mean();
visonliu 2008-06-10
  • 打赏
  • 举报
回复
椭圆的边界已经确定吗?
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
接分是王道!
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
什么呀
zzwu 2007-08-28
  • 打赏
  • 举报
回复
啊,我突然增加了一颗星,变成四个红星了!
zzwu 2007-08-28
  • 打赏
  • 举报
回复
又,以上程序引自:
http://www.mathworks.com/access/helpdesk/help/toolbox/images/index.html?/access/helpdesk/help/toolbox/images/exampleindex.html&http://www.mathworks.com/access/helpdesk/help/toolbox/images/images_product_page.html
zzwu 2007-08-28
  • 打赏
  • 举报
回复
我从网上查到在Matlab中确有一个函数,bwtraceboundary,可以实现轮廓跟踪,

以下是它的用法的一个范例,程序很短:

BW = imread('blobs.png');
imshow(BW,[]);
s=size(BW);
for row = 2:55:s(1)
for col=1:s(2)
if BW(row,col),
break;
end
end

contour = bwtraceboundary(BW, [row, col], 'W', 8, 50,...
'counterclockwise');
if(~isempty(contour))
hold on;
plot(contour(:,2),contour(:,1),'g','LineWidth',2);
hold on;
plot(col, row,'gx','LineWidth',2);
else
hold on; plot(col, row,'rx','LineWidth',2);
end
end

但要注意,要用较高的版本才行,低版本的matlab没有此函数.


zzwu 2007-08-25
  • 打赏
  • 举报
回复
遗憾,我没有用过matlab,不了解它的任何语句,当然也不是"高手"了.
robustkele 2007-08-21
  • 打赏
  • 举报
回复
是啊,我也正在找呢,还是希望高手能提供一些帮助
zzwu 2007-08-18
  • 打赏
  • 举报
回复
matlab中是否有现成的边界跟踪程序,我不知道,
如果有,就不需要自己编程,方便多了.
robustkele 2007-08-18
  • 打赏
  • 举报
回复
还是要感谢zzwu(未名),倒时候给你加分
robustkele 2007-08-18
  • 打赏
  • 举报
回复
最好能有matlab写的程序
zzwu 2007-08-18
  • 打赏
  • 举报
回复
程序见

http://www-scf.usc.edu/~flv/ipbook/chap07.htm

中最后面的一小节(7.5节).
zzwu 2007-08-18
  • 打赏
  • 举报
回复
轮廓跟踪就是通过一定的顺序来寻找出图像中物体的所有边缘点。

我们用下面的图像来说明了轮廓跟踪过程:
 012345678
+—————————+
|         |0
|  ****   |1
| ******  |2
| ******* |3
| ******* |4
|  ****** |5
|   ****  |6
|         |7
+—————————+
首先按从上(0行)到下(7行),从左(0列)到右(8列)的顺序搜索,
找到的第一个黑点(第1行第2点),这一定是左上方的边界点A:
 012345678
+—————————+
|         |0
|  A***   |1
| ******  |2
| ******* |3
| ******* |4
|  ****** |5
|   ****  |6
|         |7
+—————————+
再从A找到A的右边的边界点记为B,
(如果A的右边没有边界点,则依此找A的右下、下面、左下的边界点为B)
 012345678
+—————————+
|         |0
|  AB**   |1
| ******  |2
| ******* |3
| ******* |4
|  ****** |5
|   ****  |6
|         |7
+—————————+
这样,利用当前点的右边作为下一个点,一直可以找出4个点ABCD:
 012345678
+—————————+
|         |0
|  ABCD   |1
| ******  |2
| ******* |3
| ******* |4
|  ****** |5
|   ****  |6
|         |7
+—————————+
接下去,D右边没有边界点,就要按前面说的次序,找D的右下点作为下一点E。
并且再把E的右下点作为E的下一个点F,由此得到:
 012345678
+—————————+
|         |0
|  ABCD   |1
| *****E  |2
| ******F |3
| ******* |4
|  ****** |5
|   ****  |6
|         |7
+—————————+
再接下去,F的右下点又不是边界了,因此要找F的下面的点作为下一点G了。

总而言之,我们利用不断改变方向的办法,来寻找下一个边界点,方向的选择次序为
右、右下、下、左下、左,左上、上、右上
利用这样的次序,可以从A点出发,一点一点地,接着找出所有边界点,
直到回到第一个边界点A为止:
 012345678
+—————————+
|         |0
|  ABCD   |1
| P****E  |2
| O*****F |3
| N*****G |4
|  M****H |5
|   LKJI  |6
|         |7
+—————————+

然后,就可以把A…P的所有坐标Xi,Yi分别求平均,就得到椭圆圆心坐标(Yo,Yo),



robustkele 2007-08-17
  • 打赏
  • 举报
回复
最好是能有现成代码,本人很着急用,谢谢
feiyijin 2007-08-12
  • 打赏
  • 举报
回复
求取椭圆的边界
对椭圆边界进行拟和,求的椭圆的方程
根据拟和出来的椭圆方程求取 参数


具体方法你搜一下 椭圆拟和方面的论文就可以了
加载更多回复(6)

4,447

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧