首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找西门子之星的中心

寻找西门子之星的中心
EN

Stack Overflow用户
提问于 2016-06-10 15:35:49
回答 1查看 522关注 0票数 2

我必须找到Siemens star的中心。(西门子之星是用于相机校准的标准图像。)

对于一个人来说非常容易,但是我不知道该使用哪种方法(最好是OpenCV)。我使用的是Python。

我试过使用边缘检测,我想我可以得到边缘轮廓,然后制作一些直线方程,然后看看这些直线相交的地方。但是我得到了一些杂乱的线条,边缘杂乱,轮廓都是不相交的(或者我可能不理解它们...)。以下是使用此代码找到的轮廓:

代码语言:javascript
复制
from OpenCVX import cvx2

filepath = 'img.jpg'
img = cvx2.imread(filepath, 0)

ret, thresh = cvx2.threshold(img, 127, 255, 0)
im2, contours, hierarchy = cvx2.findContours(thresh, cvx2.RETR_TREE, cvx2.CHAIN_APPROX_SIMPLE)
cvx2.drawContours(img, contours, -1, (255,255,255), 3)

plt.imshow(img)
plt.show()

无论如何,有什么技巧可以解决这样的问题吗?假设我是一个n00b..

EN

回答 1

Stack Overflow用户

发布于 2016-06-11 03:54:34

这就是我最终要做的事情。它不是非常健壮,但现在可能已经足够好了。只要取列和列的总和,就会给出一个峰值或一个谷值--在某个猜测位置附近找到最大值或最小值,就会得到中心。

代码语言:javascript
复制
sum_cols, sum_rows = np.sum(img, axis=0), np.sum(img, axis=1)

不幸的是,在一些少数情况下,这是不起作用的。当恒星旋转时,中心的最小或最大值从最小值疯狂地翻转到最大值。在翻转的中间,围绕图像猜测中心的有限距离内,它既不是最小值,也不是最大值。如果你有更好的建议,请随时提出来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37742508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档