opencv 角点检测 python 示例
时间: 2023-07-04 10:31:18 浏览: 45
以下是使用 OpenCV 在 Python 中进行角点检测的示例代码:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 进行角点检测
corners = cv2.goodFeaturesToTrack(gray, 25, 0.01, 10)
# 将角点标记在图像上
for corner in corners:
x, y = corner.ravel()
cv2.circle(img, (x, y), 3, (0, 0, 255), -1)
# 显示图像
cv2.imshow('Corners', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们首先使用 `cv2.imread()` 函数读取图像。然后,我们将图像转换为灰度图像,因为角点检测需要在灰度图像上进行。接下来,我们使用 `cv2.goodFeaturesToTrack()` 函数进行角点检测,该函数返回检测到的角点的坐标。最后,我们使用 `cv2.circle()` 函数将检测到的角点标记在原始图像上,并使用 `cv2.imshow()` 函数显示图像。
相关问题
opencv角点检测python实现
以下是使用Python和OpenCV进行角点检测的示例代码:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 检测角点
corners = cv2.goodFeaturesToTrack(gray, 100, 0.01, 10)
# 绘制角点
for corner in corners:
x, y = corner.ravel()
cv2.circle(img, (x, y), 3, (0, 255, 0), -1)
# 显示图像
cv2.imshow('corners', img)
cv2.waitKey()
```
代码中使用`cv2.imread`读取图像,然后使用`cv2.cvtColor`将其转换为灰度图像。然后使用`cv2.goodFeaturesToTrack`检测图像中的角点,其中`100`表示最多检测100个角点,`0.01`表示角点质量因子,`10`表示最小距离。最后使用`cv2.circle`在图像中绘制检测到的角点,并使用`cv2.imshow`显示图像。
opencv角点检测坐标python
可以使用OpenCV中的cornerHarris函数来进行角点检测,该函数会返回检测到的角点的坐标。以下是一个Python示例代码:
```
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 进行角点检测
dst = cv2.cornerHarris(gray, 2, 3, .04)
# 标记角点
img[dst > .01 * dst.max()] = [, , 255]
# 显示结果
cv2.imshow('corners', img)
cv2.waitKey()
cv2.destroyAllWindows()
```
其中,cornerHarris函数的参数含义如下:
- gray:灰度图像
- 2:角点检测窗口大小
- 3:Sobel算子的孔径大小
- .04:角点响应函数的参数k值
最后,通过dst > .01 * dst.max()来筛选出响应值较大的角点,并在原图上标记出来。