时间:2021-05-22
1.对于RGB三通道图片,直接用两层for循环的话,效率比较低
2.可以先将RGB图片转为灰度图片,再利用numpy.where的广播机制统计像素个数。这里有一个前提是提前知道与灰度图片的像素值相对应RGB颜色。
代码如下:
from PIL import Imageimport numpy as npimport cv2img_L = np.array(Image.open('test.png').convert("L"))img_RGB = np.array(Image.open('test.png').convert("RGB"))# temp = {}# for i in range(img_L.shape[0]):# for j in range(img_L.shape[1]):# if not temp.get(int(img_L[i][j])):# temp[int(img_L[i][j])] = list(img_RGB[i][j])# print(temp)#这里得到灰度像素值0对应(0,0,0),62对应(19,69,139)color_0_0_0 = np.where(img_L == 0)[0].shape[0]color_19_69_139 = np.where(img_L == 62)[0].shape[0]pixel_sum = img_L.shape[0] * img_L.shape[1]print("0_0_0 像素个数:{} 占比:%{}".format(color_0_0_0,color_0_0_0/pixel_sum*100))print("19_69_139 像素个数:{} 占比:%{}".format(color_19_69_139,color_19_69_139/pixel_sum*100))补充:OpenCV---如何统计图像的像素分布值个数(6)
像素分布统计图
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Python实现去除图片中指定颜色的像素功能。分享给大家供大家参考,具体如下:这里用python去除图片白色像素需要python和pilfromP
需求在4*4的图片中,比较外围黑色像素点和内圈黑色像素点个数的大小将图片分类如上图图片外围黑色像素点5个大于内圈黑色像素点1个分为0类反之1类想法通过numpy
如下所示:#coding=utf-8#读取图片返回图片某像素点的b,g,r值importcv2importnumpyasnpimg=cv2.imread('./
本文实例讲述了Python利用matplotlib绘制约数个数统计图。分享给大家供大家参考,具体如下:利用Python计算1000以内自然数的约数个数,然后通过
1椭圆肤色检测模型原理:将RGB图像转换到YCRCB空间,肤色像素点会聚集到一个椭圆区域。先定义一个椭圆模型,然后将每个RGB像素点转换到YCRCB空间比对是否