opencv 如何使用自定义网格线制作的单位正方形测量单色区域?

dba5bblo  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(98)

我有一个像这样的网格线的图像,我想用从网格线制作的单位正方形来测量每个单色区域。混合不同颜色的方格不计算在内。
Full Image Here

到目前为止,我可以count the number of black and white pixels in the image,但我不知道如何自定义代码,以满足我的需要。

lqfhib0f

lqfhib0f1#

你可以使用np.unique来计算img中所有颜色的出现次数:

import cv2
import numpy as np
  
# reading the image data from desired directory
img = cv2.imread("1OKN8m.jpg")
cv2.imshow('Image',img)

img_1d = img.reshape(img.shape[0]*img.shape[1], img.shape[2])
unique_colors, counts = np.unique(img_1d, axis=0, return_counts=True)
print(f'Unique colors: {unique_colors}')
print(f'Counts: {counts}')

因为它是一个jpeg,“单色”区域包含了很多不同的颜色,所以你应该选择所有的独特的颜色是足够接近根据你和计数了他们的个人计数。

相关问题