以下是使用 Python 编写的代码,用于统计 RGB 图像中所有轮廓的大小,计算平均值,并去除小于平均值的轮廓部分,只保留大于平均值的轮廓。\n\npython\nimport cv2\nimport numpy as np\n\n# 加载图像\nimage = cv2.imread('image.jpg')\n\n# 将图像转为灰度图\ngray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)\n\n# 使用 Canny 边缘检测算法获取轮廓\nedges = cv2.Canny(gray, 100, 200)\n\n# 查找轮廓\ncontours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)\n\n# 统计轮廓大小,并计算平均值\ncontour_sizes = [cv2.contourArea(contour) for contour in contours]\naverage_size = np.mean(contour_sizes)\n\n# 创建一个空白图像,用于保存保留的轮廓部分\nresult = np.zeros_like(image)\n\n# 根据平均值,去除小于平均值的轮廓部分,并保留大于平均值的部分\nfor contour in contours:\n if cv2.contourArea(contour) > average_size:\n cv2.drawContours(result, [contour], -1, (255, 255, 255), -1)\n\n# 保存结果图像\ncv2.imwrite('result.jpg', result)\n\n\n请注意,以上代码中的 image.jpg 是输入的图像文件,result.jpg 是保存的结果图像文件,你需要将其替换为你自己的图像文件路径。

Python 代码:去除 RGB 图像中小于平均轮廓大小的区域

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

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