21xrx.com
2024-09-21 07:50:11 Saturday
登录
文章检索 我的文章 写文章
使用OpenCV如何找到图像中最靠下的黄色点
2023-08-01 15:42:30 深夜i     --     --
OpenCV 图像 最靠下 黄色点

OpenCV是一个广泛使用的计算机视觉库,对于处理和分析图像具有强大的功能。本文将介绍如何使用OpenCV找到图像中最靠下的黄色点。

1. 导入OpenCV库和其他必要的库:

python

import cv2

import numpy as np

2. 加载图像并转换为HSV颜色空间:

python

image = cv2.imread('image.jpg')

hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

3. 定义黄色的HSV阈值范围:

python

lower_yellow = np.array([20, 100, 100])

upper_yellow = np.array([30, 255, 255])

4. 根据阈值范围创建一个掩码,只保留图像中的黄色区域:

python

yellow_mask = cv2.inRange(hsv_image, lower_yellow, upper_yellow)

5. 执行形态学操作,进行掩码的闭合和开合:

python

kernel = np.ones((5, 5), np.uint8)

yellow_mask = cv2.morphologyEx(yellow_mask, cv2.MORPH_CLOSE, kernel)

yellow_mask = cv2.morphologyEx(yellow_mask, cv2.MORPH_OPEN, kernel)

6. 找出图像中所有黄色点的轮廓:

python

contours, _ = cv2.findContours(yellow_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

7. 计算每个轮廓的中心坐标:

python

centers = []

for contour in contours:

  M = cv2.moments(contour)

  cX = int(M["m10"] / M["m00"])

  cY = int(M["m01"] / M["m00"])

  centers.append((cX, cY))

8. 根据最靠下的Y坐标排序中心点列表:

python

sorted_centers = sorted(centers, key=lambda x: x[1], reverse=True)

9. 获取最靠下的黄色点的坐标:

python

bottom_yellow_point = sorted_centers[0]

10. 在原始图像上绘制最靠下的黄色点:

python

cv2.circle(image, bottom_yellow_point, 5, (0, 255, 255), -1)

cv2.putText(image, 'Bottom Yellow Point', (bottom_yellow_point[0] + 10, bottom_yellow_point[1] + 10),

      cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 255), 2)

11. 显示带有最靠下黄色点的图像:

python

cv2.imshow("Bottom Yellow Point", image)

cv2.waitKey(0)

通过上述步骤,我们使用OpenCV成功找到了图像中最靠下的黄色点,并在原始图像上进行了标注。这个方法在许多计算机视觉应用中是非常有用的,例如物体检测、颜色识别等。在实际应用中,我们可以根据具体情况对阈值范围和形态学操作进行调整,以获取更准确的结果。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复