加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用OpenCV计算Python中图像中的黑色像素数

发布时间:2020-12-16 23:19:16 所属栏目:Python 来源:网络整理
导读:我在 Python中有以下测试代码来读取,阈值和显示图像: import cv2import numpy as np from matplotlib import pyplot as plt# read imageimg = cv2.imread('slice-309.png',0)ret,thresh = cv2.threshold(img,230,cv2.THRESH_BINARY)height,width = img.shap
我在 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,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()

我想用一定的标签来计算图像中的像素数,例如黑色.
我怎样才能做到这一点 ?我查看了OpenCV的教程,但没有找到任何帮助:-(

谢谢!

解决方法

对于黑色图像,您将获得总像素数(行*列),然后从您从 countNonZero(mat)获得的结果中减去它.

对于其他值,您可以使用inRange()创建蒙版以返回显示所需颜色/标签/值的所有位置的二进制蒙版,然后使用countNonZero计算其中有多少个.

更新(每个Miki的评论):

在尝试查找具有特定值的元素计数时,Python允许您跳过inRange()调用并执行以下操作:

countNonZero(img == scalar_value)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读