![]() |
[求助]确定图像的中心并画几个同心圆
图片是一个特殊广角照相机照的环形天空,我需要做的任务就是确定中心,并画出80°、70°、60°。。。等位线,图像的边缘代表15°。
我是一个初学者,还没入门,想请教诸位大侠:cool: 1.读入图像后,由于两边有黑色区域,怎么才能确定圆心呢? 2.怎么才能测出图像中这个圆的半径呢?直接利用size的话出来的是连着黑色区域一起的长度,怎么才能只测圆形区域的大小呢? 3.确定圆心和半径后,用什么命令才能把画出的线留在图像上呢?我利用hold on命令可以把画出的线留在图上,可是怎么用imwrite输出成一个新的图像呢? [IMG]http://lh4.ggpht.com/_NWLImwBHJPU/Sb-E4bxDEDI/AAAAAAAAAB4/M1taOEt5eNo/s640/1.jpg[/IMG] |
回复: [求助]确定图像的中心并画几个同心圆
希望大家不吝赐教。。。随便三言两语也可以。。。不一定要全部都回答。。。
真的,跪谢大家了。。。 |
回复: [求助]确定图像的中心并画几个同心圆
去这里找找[url]http://image.edu.topzj.com/index.php[/url]
|
回复: [求助]确定图像的中心并画几个同心圆
[QUOTE=webzhou;26346]去这里找找[url]http://image.edu.topzj.com/index.php[/url][/QUOTE]
谢谢,我去看了,但是没太找到合适的东西。。。不过还是谢谢。。。 |
回复: [求助]确定图像的中心并画几个同心圆
2 个附件
lz 我想针对这三个问题
1 确定圆心,提供3种方法或者思路: a.通过任取圆上三个点,连接组成一个内接三角形,然后计算三条边的中垂线的交点,这是几何的方法,当然,这要求你的三个点的选取要精确,当然,可以通过多次测量取平均值甚至是聚类来做,直接取平均值就可以了,聚类有点过了,相信,确定圆心对你来讲是基础,但是不能复杂度太高不是么?原理图解释在这里,你可以看一下。 b.取出圆的轮廓,即亦同时将图中二值化,任取圆上两点,分别寻找与此两点欧氏距离最远的两个点,可使用穷举法,因为无非是圆上循环一周嘛,只要什么时候,距离开始减小,最远点就找到了,连接形成对应的直径,交点就是圆心; c.Hough变换,我想这个可能对于你来说也是可能便于后面的处理,你这里的广角图像其实可以理解为在极坐标下表示不是么?我们都知道Hough变换可以检测直线,它可以用来检测圆的,圆心也就在情理之中了,反用hough变换是一个inverse problem,但是可以解决,而且国内也有人把这个发了paper, 原理非常简单,你可以查一下数据库,比较经典的就是检测那张coin的图像。由于有一部分圆的边界你看不到,肯定要有些technical change。Anyway,this is a routine. |
回复: [求助]确定图像的中心并画几个同心圆
2 1如果你可以解决 2不是问题不是么?
3 你可以这样考虑这个问题,不是加线在图像上,而是画线,即将那些在等位线上的点的像素值改为你想要的等位线的颜色,比如说黑色,灰度图里就是255;还有一种就是叠加,即你在一副新的与该照片一样大小的图像上画好等位线(前提当然是已经解决1和2的情况下,即已经确定好圆心),然后叠加在当前图像上,需要注意的就是,数组值的溢出。 Thx for reading. PS:若还算满意,直接点击“Thanks”,再次登陆时亦便于查看回答是否真的帮到你了。 |
回复: [求助]确定图像的中心并画几个同心圆
谢谢,太感谢了!给我提供了这么多的思路!
关于第三条,我之前也思考过,当我确定圆心后,我把与圆心坐标的欧氏距离等于我需要的r值的点都画成我需要的颜色,但是我觉得点和点的欧氏距离算出来的是一个近似值,肯定不能恰恰等于我所需要的r。举个例子,比如我算出的r=9.1,圆心是[0,0],那[0,9]这个点可以被标注下来吗?主要可能是我对于Matlab的算法还是不是很清楚。。。 关于叠加的方法,我试验了一下,简单的A+B出来的图形变了颜色,我不知道是不是需要进行某些转换,而且好像不仅仅是简单的叠加,也可以说是覆盖。。。 还是太感谢大侠了! |
回复: [求助]确定图像的中心并画几个同心圆
关于确定圆心,我刚才也想了种方法,咱们交流一下,你看看是否能行。
我想的是利用黑色区域,因为黑色的[i,j,:]=0,所以用穷举算出左侧和右侧的端点。。。 不过感觉工作量还是很大的,不如提取圆形边缘省事儿,我再查一下提取圆形边缘的方法吧,起码有了思路,太感谢了。。。 |
回复: [求助]确定图像的中心并画几个同心圆
nice problem, I think.
第一段 因为是离散图像 这个是难免的,因为总是要取整的,在图像旋转时和图形学上,这是一个很有趣的研究方向。除非图像interpolation,否则是有更好,没有最好。(广告词用一下, 澳柯玛~) 第二段 我的意思你可能已经基本明白了 不过 没有注意我的提醒哦 数组值 即 灰度值的范围 你这样相加 可是有越界的危险 越界后当然0开始 可以说求了一个255的补 当然颜色变掉了 越界了 大于255了怎么办 那么就在代码中加入 判断语句 if >255 =255 end if 或者向你所说 也是我的前一个说法 用另外一种颜色 即灰度值 覆盖就可以了 Thx for reading. PS:若还算满意,直接点击“Thanks”,再次登陆时亦便于查看回答是否真的帮到你了。 |
回复: [求助]确定图像的中心并画几个同心圆
[QUOTE=silas_xue;26358]lz 我想针对这三个问题
1 确定圆心,提供3种方法或者思路: a.通过任取圆上三个点,连接组成一个内接三角形,然后计算三条边的中垂线的交点,这是几何的方法,当然,这要求你的三个点的选取要精确,当然,可以通过多次测量取平均值甚至是聚类来做,直接取平均值就可以了,聚类有点过了,相信,确定圆心对你来...[/QUOTE] 能不能再跟我仔细说说怎么才能提取圆的轮廓。。。 我试着提取轮廓,出来的是所有的,而且不知道怎么选取圆的轮廓上的点,我用穷举检测,发现背景上有很多噪点,影响我检测的结果,总也不能自动取到圆上的点。。。 |
所有时间均为北京时间。现在的时间是 03:39。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.