- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试获取并绘制图像中的角点。现在,我有一个元组列表,格式如下:(row,column,scale)
(scale 是因为我使用的是高斯金字塔),从 harrisCornerDetector 和 nonMaximumSupression 过程中手动获得。此列表是 featuresy1
。
我的代码如下:
r,g,b=cv2.split(image)
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)
cv2.cornerSubPix( r, featuresy1, (5,5), (-1,1), criteria )
其中图像是具有三个相同形状的灰度图像。如您所见,我将 cornerSubPix
作为第二个参数,结构如下:[(x1,y1,scale1),(x2,y2,scale2),..., (xn,yn,scalen)]
.
这是抛出以下错误:
cv2.cornerSubPix( r, featuresy1, (5,5), (-1,1), criteria )
TypeError: corners is not a numpy array, neither a scalar
出于这个原因,我想知道什么类型、格式或结构应该有 featuresy1
来执行 cornerSubPix()
工作。这是我做错的唯一一件事吗?没有太多关于此的文档。
谢谢!
最佳答案
您需要确保 corners
是 3 维 (n, 1, 2)
的 numpy 数组,其中 n 是角的数量。它还必须是 float32 类型。
只需输入
corners.shape
验证这一点。
输入
corners.dtype
检查您使用的是 float32。
对我来说,你的角落 featuresy1
是列表,它应该是一个 numpy 数组。首先将其转换为 numpy 数组:
featuresy1 = np.array(featuresy1)
Opencv 有一个简单的 understand example可能对你有帮助
关于python - 如何在 Python 中使用 OpenCV cornerSubPix()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40461469/
我必须用一个大棋盘来校准我的相机。 我正在使用 cornerSubPix() 但我不知道也找不到 OpernCV 函数可以检测和支持的最大角点数。 事实上,我想知道校准相机的最大棋盘尺寸是多少,而不是
有没有论文介绍openCV中FindCornerSubPix函数的算法?我找不到任何描述它的文档。 最佳答案 我相信从源代码(2.1 版)来看它正在使用图像渐变来优化位置... cv.h: 997 /
cv2.cornerSubPix() 函数返回 None 值。 我正在学习官方 opencv 教程。现在我在相机校准主题。 以下是我的代码:- import numpy as np import cv
我正在尝试获取并绘制图像中的角点。现在,我有一个元组列表,格式如下:(row,column,scale)(scale 是因为我使用的是高斯金字塔),从 harrisCornerDetector 和 n
我试图了解 OpenCV 中的 cornerSubPix API 背后的想法和实用性。我阅读了 link 中的解释并且无法理解它是如何工作的以及它是如何有用的。有人能解释一下它是如何工作的以及它在角点
您好! 我在使用 imgproc.hpp 文件中的 cornerSubPix 方法时遇到问题。我不明白缺少哪个库或有什么错误。我在 OS X 10.10.3 上使用 Qt 5.4.1,并使用 Open
我在使用 OpenCV python 包装器执行以下函数时遇到问题: img = cv.LoadImage("calib0.jpg") grayImg = cv.CreateImage((img.wi
我是一名优秀的程序员,十分优秀!