如何在Python中使用OpenCV cornersubix()?

2024-05-20 21:28:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我在画一张图片的角点。现在,我有一个具有以下格式的元组列表:(row,column,scale)(比例是因为我使用的是高斯金字塔),从harriscornerdector和非最大抑制过程中手动获取。这个列表是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()工作。这是我唯一做错的事吗?关于这方面的文献并不多。

谢谢!


Tags: 图像列表格式图片column结构cv2row