Как посчитать количество красных пикселей на изображении, используя Python Open Cv? - PullRequest
0 голосов
/ 05 июня 2018

Я сейчас работаю над проектом, в котором мне нужно подсчитать количество красных, синих, зеленых, желтых, оранжевых и фиолетовых пикселей, присутствующих на изображении.Поскольку я новичок в opencv, я не могу найти метод, который мог бы решить мои проблемы ...

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Хорошим началом будет учебник здесь , использующий гистограммы для построения цветов изображения.Это выглядит так:

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 вы можете легко адаптироваться к решению вашей первоначальной проблемы.

0 голосов
/ 05 июня 2018

Вы можете легко сделать то же самое, не используя открытое резюме.

Предположим, у вас есть изображение с именем 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...