OpenCV - 计算图像中黑白像素的数量
在本文中,我们将讨论使用 OpenCV 和 NumPy 计算图像中黑色像素和白色像素的数量。
先决条件:
- OpenCV
- NumPy
我们用于演示的图像如下所示:
为了显示 OpenCV 提供了imshow()方法来显示我们最近阅读的图像。
计算像素
NumPy 提供了一个函数sum(),它返回 NumPy 数组中所有数组元素的总和。这个 sum()函数可用于根据所需标准计算像素数。
现在,我们对像素模式有了一些了解。众所周知,彩色图像中的每个像素的范围都在[0-255]之间,黑色的像素值为0,白色的像素值为255。这给了我们一个固定的微分条件黑色和白色像素分别来自其他彩色像素。
这个条件可以写在 NumPy 中:
number_of_white_pix = np.sum(img == 255) # extracting only white pixels
number_of_black_pix = np.sum(img == 0) # extracting only black pixels
第一行表示从 cv2 图像对象“img”中提取并计算所有像素 像素值为 255,即白色像素。类似地,第二行表示从像素值为 0 的 cv2 图像对象“img” (即黑色像素)中提取并计算所有像素。
sum() 中的条件仅从图像中提取符合该条件的那些像素,并将它们赋值为 True (1),其余像素赋值为 False (0)。因此,所有 True (1) 的总和为我们提供了满足括号内给定条件的那些像素的计数。
代码:使用 OpenCV 计算图像中黑白像素数的Python实现
Python3
# importing libraries
import cv2
import numpy as np
# reading the image data from desired directory
img = cv2.imread("chess5.png")
cv2.imshow('Image',img)
# counting the number of pixels
number_of_white_pix = np.sum(img == 255)
number_of_black_pix = np.sum(img == 0)
print('Number of white pixels:', number_of_white_pix)
print('Number of black pixels:', number_of_black_pix)
输出:
因此,我们可以从上面的结果中推断出,可以对图像进行处理,以在其颜色代码的帮助下检索任何所需颜色的像素,或者根据需要根据任何其他条件获取像素。
参考:
- https://numpy.org/doc/stable/reference/generated/numpy.sum.html
- https://note.nkmk.me/en/python-numpy-count