OpenCV Python: 使用轮廓大小筛选图像
以下是一个使用 OpenCV 库实现图像处理和轮廓检测的示例程序:
import cv2
import numpy as np
# 读取 RGB 图像
image = cv2.imread('image.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 阈值化图像
_, threshold = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 查找轮廓
contours, _ = cv2.findContours(threshold, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 计算轮廓大小的平均值
total_area = 0
for contour in contours:
total_area += cv2.contourArea(contour)
average_area = total_area / len(contours)
# 筛选大于平均值的轮廓
filtered_contours = []
for contour in contours:
if cv2.contourArea(contour) > average_area:
filtered_contours.append(contour)
# 创建空白图像
output = np.zeros_like(image)
# 绘制筛选后的轮廓
cv2.drawContours(output, filtered_contours, -1, (0, 255, 0), 2)
# 保存输出图像
cv2.imwrite('output.jpg', output)
请注意,在上面的示例中,我们假设图像文件名为'image.jpg',并且将输出图像保存为'output.jpg'。您需要将这些文件名替换为您自己的图像文件名。此外,该程序将根据原图像的轮廓大小的平均值筛选出大于平均值的部分,并将该部分的轮廓和轮廓中的部分绘制在输出图像上。
原文地址: https://www.cveoy.top/t/topic/qiJ8 著作权归作者所有。请勿转载和采集!