Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-03-17, 20:07   #1
bjpu
初级会员
 
注册日期: 2009-02-21
年龄: 45
帖子: 10
声望力: 17
bjpu 正向着好的方向发展
问题 [求助]确定图像的中心并画几个同心圆

图片是一个特殊广角照相机照的环形天空,我需要做的任务就是确定中心,并画出80°、70°、60°。。。等位线,图像的边缘代表15°。

我是一个初学者,还没入门,想请教诸位大侠
1.读入图像后,由于两边有黑色区域,怎么才能确定圆心呢?
2.怎么才能测出图像中这个圆的半径呢?直接利用size的话出来的是连着黑色区域一起的长度,怎么才能只测圆形区域的大小呢?
3.确定圆心和半径后,用什么命令才能把画出的线留在图像上呢?我利用hold on命令可以把画出的线留在图上,可是怎么用imwrite输出成一个新的图像呢?


bjpu 当前离线   回复时引用此帖
旧 2009-03-17, 21:08   #2
bjpu
初级会员
 
注册日期: 2009-02-21
年龄: 45
帖子: 10
声望力: 17
bjpu 正向着好的方向发展
默认 回复: [求助]确定图像的中心并画几个同心圆

希望大家不吝赐教。。。随便三言两语也可以。。。不一定要全部都回答。。。

真的,跪谢大家了。。。
bjpu 当前离线   回复时引用此帖
旧 2009-03-17, 22:40   #3
webzhou
初级会员
 
注册日期: 2008-12-12
年龄: 51
帖子: 14
声望力: 17
webzhou 正向着好的方向发展
默认 回复: [求助]确定图像的中心并画几个同心圆

去这里找找http://image.edu.topzj.com/index.php
webzhou 当前离线   回复时引用此帖
旧 2009-03-18, 00:35   #4
bjpu
初级会员
 
注册日期: 2009-02-21
年龄: 45
帖子: 10
声望力: 17
bjpu 正向着好的方向发展
默认 回复: [求助]确定图像的中心并画几个同心圆

引用:
作者: webzhou 查看帖子
谢谢,我去看了,但是没太找到合适的东西。。。不过还是谢谢。。。
bjpu 当前离线   回复时引用此帖
旧 2009-03-18, 05:23   #5
silas_xue
高级会员
 
注册日期: 2008-11-01
年龄: 39
帖子: 406
声望力: 26
silas_xue 是一个将要出名的人
默认 回复: [求助]确定图像的中心并画几个同心圆

lz 我想针对这三个问题
1 确定圆心,提供3种方法或者思路:
a.通过任取圆上三个点,连接组成一个内接三角形,然后计算三条边的中垂线的交点,这是几何的方法,当然,这要求你的三个点的选取要精确,当然,可以通过多次测量取平均值甚至是聚类来做,直接取平均值就可以了,聚类有点过了,相信,确定圆心对你来讲是基础,但是不能复杂度太高不是么?原理图解释在这里,你可以看一下。
b.取出圆的轮廓,即亦同时将图中二值化,任取圆上两点,分别寻找与此两点欧氏距离最远的两个点,可使用穷举法,因为无非是圆上循环一周嘛,只要什么时候,距离开始减小,最远点就找到了,连接形成对应的直径,交点就是圆心;
c.Hough变换,我想这个可能对于你来说也是可能便于后面的处理,你这里的广角图像其实可以理解为在极坐标下表示不是么?我们都知道Hough变换可以检测直线,它可以用来检测圆的,圆心也就在情理之中了,反用hough变换是一个inverse problem,但是可以解决,而且国内也有人把这个发了paper, 原理非常简单,你可以查一下数据库,比较经典的就是检测那张coin的图像。由于有一部分圆的边界你看不到,肯定要有些technical change。Anyway,this is a routine.
上传的图像
文件类型: jpg 圆心_Geometry.JPG (5.6 KB, 3 次查看)
silas_xue 当前离线   回复时引用此帖
旧 2009-03-19, 01:23   #6
bjpu
初级会员
 
注册日期: 2009-02-21
年龄: 45
帖子: 10
声望力: 17
bjpu 正向着好的方向发展
默认 回复: [求助]确定图像的中心并画几个同心圆

引用:
作者: silas_xue 查看帖子
lz 我想针对这三个问题
1 确定圆心,提供3种方法或者思路:
a.通过任取圆上三个点,连接组成一个内接三角形,然后计算三条边的中垂线的交点,这是几何的方法,当然,这要求你的三个点的选取要精确,当然,可以通过多次测量取平均值甚至是聚类来做,直接取平均值就可以了,聚类有点过了,相信,确定圆心对你来...
能不能再跟我仔细说说怎么才能提取圆的轮廓。。。
我试着提取轮廓,出来的是所有的,而且不知道怎么选取圆的轮廓上的点,我用穷举检测,发现背景上有很多噪点,影响我检测的结果,总也不能自动取到圆上的点。。。
bjpu 当前离线   回复时引用此帖
旧 2009-03-19, 04:47   #7
silas_xue
高级会员
 
注册日期: 2008-11-01
年龄: 39
帖子: 406
声望力: 26
silas_xue 是一个将要出名的人
默认 回复: [求助]确定图像的中心并画几个同心圆

lz 不知道你是否先进行去噪处理了么? 这是预处理 实际处理时总是要做的
然后计算边缘 连接
或者
针对图像 我个人的观点 是否可以直接根据灰度值进行二值化segmentation 即周围的背景去噪后 应该斑点减少或者 或者基本没有了 然后 然后将灰度值较大的(这里需要一个阈值,估计可能你要多次实验找出阈值,可以参考直方图) 将比较亮的点直接变为一种颜色 这个方法比较容易理解 做起来也不过花些功夫而已 但是只是针对你的这幅图像来讲 因为毕竟背景的颜色非常暗
另外 一旦提取出圆了 尽管周围有噪点 还要进行一次去噪 或者 在你计算最远距离的条件上加一些修改 去除干扰 因为噪点很多都是单像素或者不连续的 你可以从这方面进行考虑

Thx for reading.
个人观点 仅供参考
silas_xue 当前离线   回复时引用此帖
旧 2009-03-19, 07:22   #8
bjpu
初级会员
 
注册日期: 2009-02-21
年龄: 45
帖子: 10
声望力: 17
bjpu 正向着好的方向发展
默认 回复: [求助]确定图像的中心并画几个同心圆

引用:
作者: silas_xue 查看帖子
lz 不知道你是否先进行去噪处理了么? 这是预处理 实际处理时总是要做的
然后计算边缘 连接
或者
针对图像 我个人的观点 是否可以直接根据灰度值进行二值化segmentation 即周围的背景去噪后 应该斑点减少或者 或者基本没有了 然后 然后将灰度值较大的(这里需要一个阈值...
多谢指点!我马上去学习一下去噪的相关知识。。。感觉真是。。。项目使人进步啊。。。:ft:
bjpu 当前离线   回复时引用此帖
旧 2009-03-20, 05:06   #9
silas_xue
高级会员
 
注册日期: 2008-11-01
年龄: 39
帖子: 406
声望力: 26
silas_xue 是一个将要出名的人
默认 回复: [求助]确定图像的中心并画几个同心圆

lz 多多交流 共同进步
silas_xue 当前离线   回复时引用此帖
旧 2009-03-18, 05:31   #10
silas_xue
高级会员
 
注册日期: 2008-11-01
年龄: 39
帖子: 406
声望力: 26
silas_xue 是一个将要出名的人
默认 回复: [求助]确定图像的中心并画几个同心圆

2 1如果你可以解决 2不是问题不是么?
3 你可以这样考虑这个问题,不是加线在图像上,而是画线,即将那些在等位线上的点的像素值改为你想要的等位线的颜色,比如说黑色,灰度图里就是255;还有一种就是叠加,即你在一副新的与该照片一样大小的图像上画好等位线(前提当然是已经解决1和2的情况下,即已经确定好圆心),然后叠加在当前图像上,需要注意的就是,数组值的溢出。

Thx for reading.
PS:若还算满意,直接点击“Thanks”,再次登陆时亦便于查看回答是否真的帮到你了。
silas_xue 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 03:40


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.