要比较和绘制同一颜色区域在几百张图像数据集上的结果,可以按照以下步骤进行:
import cv2
import matplotlib.pyplot as plt
def compare_and_draw_color_region(image_path_list, color):
region_sizes = []
for image_path in image_path_list:
# 读取图像
image = cv2.imread(image_path)
# 将图像从BGR颜色空间转换为HSV颜色空间
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
# 设置颜色阈值
lower_color = np.array([color[0]-10, 100, 100])
upper_color = np.array([color[0]+10, 255, 255])
# 根据颜色阈值创建掩膜
mask = cv2.inRange(hsv_image, lower_color, upper_color)
# 统计同一颜色区域的大小
region_size = cv2.countNonZero(mask)
region_sizes.append(region_size)
# 绘制同一颜色区域
contour, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(image, contour, -1, (0, 255, 0), 2)
# 显示图像
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
return region_sizes
image_path_list = ['image1.jpg', 'image2.jpg', 'image3.jpg', ...]
compare_and_draw_color_region
函数,并传递图像路径列表和颜色作为参数。color = [100, 100, 100] # 设置颜色为RGB格式
region_sizes = compare_and_draw_color_region(image_path_list, color)
plt.plot(region_sizes)
plt.xlabel('Image Index')
plt.ylabel('Region Size')
plt.title('Comparison of Color Region Sizes')
plt.show()
通过以上步骤,你可以比较和绘制同一颜色区域在几百张图像数据集上的结果,并将结果可视化。
上一篇:比较和合并相同数组的对象
下一篇:比较和减去日期