一张图片中有使用cv2.line()画的不规则图像,写一段代码,计算该不规则图形中的像素点个数和总的像素点个数之比,Python语言
时间: 2024-05-22 10:13:15 浏览: 73
python cv2截取不规则区域图片实例
import cv2
# 读取图片
img = cv2.imread('image.jpg')
# 转换为灰度图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化图像
ret, binary_img = cv2.threshold(gray_img, 127, 255, cv2.THRESH_BINARY)
# 使用cv2.line()画出不规则图形
cv2.line(binary_img, (50, 50), (150, 100), 255, 1)
cv2.line(binary_img, (150, 100), (200, 200), 255, 1)
cv2.line(binary_img, (200, 200), (100, 150), 255, 1)
cv2.line(binary_img, (100, 150), (50, 50), 255, 1)
# 统计像素点个数
total_pixels = binary_img.shape[0] * binary_img.shape[1]
irregular_pixels = cv2.countNonZero(binary_img)
# 计算比例
ratio = irregular_pixels / total_pixels
print("不规则图形中的像素点个数为:", irregular_pixels)
print("总的像素点个数为:", total_pixels)
print("不规则图形中的像素点个数和总的像素点个数之比为:", ratio)
阅读全文