opencv-python角点检测
时间: 2023-09-24 08:13:37 浏览: 114
OpenCV-Python中的角点检测算法包括:
1. Harris角点检测:使用Harris算子检测图像中的角点,返回一个图像中所有角点的坐标。
```
import cv2
img = cv2.imread('img.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Harris角点检测
dst = cv2.cornerHarris(gray, 2, 3, 0.04)
dst = cv2.dilate(dst, None)
ret, dst = cv2.threshold(dst, 0.01 * dst.max(), 255, 0)
dst = np.uint8(dst)
# 绘制角点
img[dst > 0.01 * dst.max()] = [0, 0, 255]
cv2.imshow('Harris', img)
cv2.waitKey()
cv2.destroyAllWindows()
```
2. Shi-Tomasi角点检测:使用Shi-Tomasi算子检测图像中的角点,返回一组最好的角点。
```
import cv2
img = cv2.imread('img.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Shi-Tomasi角点检测
corners = cv2.goodFeaturesToTrack(gray, 25, 0.01, 10)
corners = np.int0(corners)
# 绘制角点
for i in corners:
x, y = i.ravel()
cv2.circle(img, (x, y), 3, 255, -1)
cv2.imshow('Shi-Tomasi', img)
cv2.waitKey()
cv2.destroyAllWindows()
```
3. FAST角点检测:使用FAST算法检测图像中的角点,返回所有检测到的角点。
```
import cv2
img = cv2.imread('img.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# FAST角点检测
fast = cv2.FastFeatureDetector_create()
kp = fast.detect(gray, None)
# 绘制角点
img2 = cv2.drawKeypoints(img, kp, None, color=(0, 0, 255))
cv2.imshow('FAST', img2)
cv2.waitKey()
cv2.destroyAllWindows()
```
阅读全文