如何使用python open cv计算图像中的红色像素数?

时间:2018-06-05 07:13:55

标签: python opencv image-processing

我目前正在开展一个项目,我需要计算图像中存在的红色,蓝色,绿色,黄色,橙色和紫色像素的数量。由于我是opencv的新手,我无法找到任何可以解决我问题的方法......

2 个答案:

答案 0 :(得分:2)

无需使用open cv。

即可轻松完成

假设您有一个名为 analysis.PNG 的图片,那么为了找到RGB百分比,您可以使用以下代码。

    from scipy import misc
    def picture_to_arr(image):
        arr = misc.imread(image)
        arr_list=arr.tolist()
        r=g=b=0
        for row in arr_list:
            for item in row:
                r=r+item[0]
                g=g+item[1]
                b=b+item[2]  
        total=r+g+b
        red=r/total*100
        green=g/total*100
        blue=b/total*100
        print ("the percentage of red content=",red,"%")
        print ("the percentage of green content=",green,"%")
        print ("the percentage of blue content=",blue,"%")


    picture_to_arr('analysis.PNG')

答案 1 :(得分:2)

一个好的开始是tutorial here,使用直方图绘制图像的颜色。它看起来像这样:

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('home.jpg')
color = ('b','g','r')
for i,col in enumerate(color):
     histr = cv2.calcHist([img],[i],None,[256],[0,256])
     plt.plot(histr,color = col)
     plt.xlim([0,256])
plt.show()

在更好地了解OpenCV之后,您可以轻松地适应以解决您的初始问题。