Python中文
首页
教程
问答
标签
搜索
登录
注册
OpenCV findChessboardCorners函数在(显然)简单场景中失败
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我想用OpenCV找到棋盘的角落。</p> <p>我使用的图像包含两个棋盘,但我只对其中一个棋盘的子区域感兴趣。 下图显示了原始图像。</p> <p><img src="https://i.stack.imgur.com/QnO9C.png" alt="Original image"/></p> <p>使用GIMP,我选择了感兴趣的区域,并将所有其他像素设置为默认值。</p> <p><img src="https://i.stack.imgur.com/fD1xK.png" alt="Cropped image"/></p> <p>我还没有真正裁剪图像,因为我已经用这个图像大小校准了相机,我不想改变它。 该操作应该等价于更改图像矩阵中的值,但我更喜欢使用GIMP。这是一个一次性的实验,用图形工具而不是代码来完成这个操作会更快。</p> <p>生成的图像包含一个有24x5个角的棋盘,但是函数findChessboardCorners找不到任何东西。</p> <p>下面是我正在使用的Python代码:</p> <pre><code>>>> img = cv2.imread('C:\\Path\\To\\C4-Cropped.png', 0) >>> cv2.findChessboardCorners(img, (24, 5)) (False, None) >>> cv2.findChessboardCorners(img, (5, 24)) (False, None) </code></pre> <p>我也试过设置自适应阈值,但仍然不起作用</p> <pre><code>>>> cv2.findChessboardCorners(img, (24, 5), flags=cv2.cv.CV_CALIB_CB_ADAPTIVE_THRESH) (False, None) </code></pre> <p>看起来真的很奇怪。在过去,我多次使用OpenCV的这个功能,而且它始终有效,即使图像看起来比这个复杂得多。 该区域的光照不是均匀的,但该函数应该足够健壮以处理该问题。</p> <p>用GIMP临时创建的<em>人工</em>图像有问题吗? 我怎样才能找到角落?</p> <p>任何建议都将不胜感激。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>在棋盘格周围加上空格。 “注意:该功能需要在电路板周围留出空白(像一个正方形的粗边框,越宽越好),以使检测在各种环境下更加可靠。否则,如果没有边界且背景是黑色的,则外部黑色方块无法正确分割,因此方块分组和排序算法失败。 “。”</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
plt.savefig不会覆盖现有文件
1 回答
plt.savefig不保存图像
2 回答
plt.savefig在jupyter笔记本中不起作用
7 回答
plt.savefig在从另一个fi调用时停止工作
3 回答
plt.savefig在调用plt.show之前保存空数字
6 回答
plt.save不创建png文件
9 回答
plt.scatter overlay分类数据帧列
9 回答
Plt.Scatter:如何添加title、xlabel和ylab
2 回答
plt.scatter()绘图与Matplotlib中的plt.plot()绘图类似
8 回答
plt.scatter错误'NoneType'对象在成功运行后没有属性'sqrt'
1 回答
plt.set_title()中的标题字符串有误
9 回答
plt.show()
9 回答
plt.show()不在Jupyter笔记本上渲染任何内容
6 回答
plt.show()不打印plt.plot only plt.scatter
3 回答
plt.show()不显示三维散射图像
10 回答
plt.show()不显示任何内容
10 回答
plt.show()不显示数据,而是保留它供下一个图表使用(spyder)
3 回答
plt.show()使终端挂起
2 回答
plt.show()无法使用此代码
1 回答
plt.show()没有打开新的图形风
3 回答