我在Python中有以下测试代码来读取,阈值和显示图像:
import cv2
import numpy as np
from matplotlib import pyplot as plt
# read image
img = cv2.imread('slice-309.png',0)
ret,thresh = cv2.threshold(img,0,230, cv2.THRESH_BINARY)
height, width = img.shape
print "height and width : ",height, width
size = img.size
print "size of the image in number of pixels", size
# plot the binary image
imgplot = plt.imshow(img, 'gray')
plt.show()
Run Code Online (Sandbox Code Playgroud)
我想用一定的标签来计算图像中的像素数,例如黑色.我怎样才能做到这一点 ?我查看了OpenCV的教程,但没有找到任何帮助:-(
谢谢!
Ric*_*ith 10
对于黑色图像,您将获得总像素数(行*cols),然后从您获得的结果中减去它countNonZero(mat).
对于其他值,您可以创建一个掩码,inRange()用于返回二进制掩码,显示所需颜色/标签/值的所有位置,然后用于countNonZero计算它们中有多少个.
更新(每个Miki的评论):
在尝试查找具有特定值的元素数时,Python允许您跳过inRange()调用并执行以下操作:
countNonZero(img == scalar_value)
Run Code Online (Sandbox Code Playgroud)