Cv2.CornerHarris报错cv2中未包含CornerHarris的定义怎么解决
时间: 2024-01-21 16:04:40 浏览: 23
这个问题可能是因为您的OpenCV版本过低导致的。在较早的OpenCV版本中,CornerHarris函数可能未被包含在cv2模块中。
要解决此问题,可以尝试更新OpenCV版本或使用以下代码替代CornerHarris函数:
```python
import cv2
import numpy as np
def cornerHarris(img, blockSize, ksize, k):
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
gray = np.float32(gray)
dst = cv2.cornerEigenValsAndVecs(gray, blockSize, ksize)
dst = dst.reshape(gray.shape[0], gray.shape[1], 2, 2)
eigenv = dst[:,:,0]
return cv2.dilate(eigenv, None) > k * np.max(eigenv)
```
这个函数使用cv2.cornerEigenValsAndVecs函数来计算图像中每个像素的特征值和特征向量,然后使用这些值来检测角点。