{/n/'title/': /'使用 OpenCV 从图像中提取大于平均大小的轮廓 - Python 代码示例/',/n/'description/': /'本代码使用 OpenCV 库从 RGB 图像中提取大于平均大小的轮廓。它首先检测图像中的所有轮廓,然后计算它们的平均大小。然后,它筛选出大于平均大小的轮廓,并从原始图像中提取这些轮廓内的内容。/',/n/'keywords/': /'OpenCV, Python, 图像处理, 轮廓检测, 轮廓提取, 平均大小/',/n/'content/': /'///'使用 OpenCV 从图像中提取大于平均大小的轮廓 - Python 代码示例///'//n///'本代码使用 OpenCV 库从 RGB 图像中提取大于平均大小的轮廓。它首先检测图像中的所有轮廓,然后计算它们的平均大小。然后,它筛选出大于平均大小的轮廓,并从原始图像中提取这些轮廓内的内容。///'//n///'OpenCV, Python, 图像处理, 轮廓检测, 轮廓提取, 平均大小///'//n///'python//nimport cv2//nimport numpy as np//n//n# 读取 RGB 图像//nimage = cv2.imread('image.jpg')//n//n# 转换为灰度图像//ngray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)//n//n# 二值化处理//n_, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)//n//n# 查找轮廓//ncontours, _ = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)//n//n# 计算轮廓大小的平均值//ntotal_size = 0//nfor contour in contours://n total_size += cv2.contourArea(contour)//naverage_size = total_size / len(contours)//n//n# 筛选轮廓大于平均值的图像部分//nfiltered_contours = []//nfor contour in contours://n if cv2.contourArea(contour) > average_size://n filtered_contours.append(contour)//n//n# 创建一个空白图像,用于绘制轮廓//ncontour_image = np.zeros_like(image)//n//n# 绘制筛选后的轮廓//ncv2.drawContours(contour_image, filtered_contours, -1, (0, 255, 0), 2)//n//n# 提取原图中位于筛选后轮廓内的图像部分//nextracted_image = np.zeros_like(image)//nfor contour in filtered_contours://n x, y, w, h = cv2.boundingRect(contour)//n extracted_image[y:y+h, x:x+w] = image[y:y+h, x:x+w]//n//n# 显示结果//ncv2.imshow('Original Image', image)//ncv2.imshow('Filtered Contours', contour_image)//ncv2.imshow('Extracted Image', extracted_image)//ncv2.waitKey(0)//ncv2.destroyAllWindows()//n//n//n请将上述代码保存为一个 Python 文件,然后将名为 ///'image.jpg///' 的 RGB 图像文件与该脚本文件放在同一目录下。运行程序后,将会显示原始图像、筛选后的轮廓图像以及提取的位于轮廓内的图像部分。//n/

使用 OpenCV 从图像中提取大于平均大小的轮廓 - Python 代码示例

原文地址: https://www.cveoy.top/t/topic/qiKi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录