我目前正在开展一个项目,我需要计算图像中存在的红色,蓝色,绿色,黄色,橙色和紫色像素的数量。由于我是opencv的新手,我无法找到任何可以解决我问题的方法......
答案 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之后,您可以轻松地适应以解决您的初始问题。