обнаружение черно-белого изображения python - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь определить, является ли изображение черно-белым или цветным, используя Open CV на языке Python. Я создал черно-белое изображение, используя MS Paint, чтобы проверить то же самое. Даже если изображение черно-белое, оно все равно имеет значения RGB, отличные от 0 и 255. Ниже приведен код, который я использовал, и изображения, которые я использовал. вывод я получаю цветное изображение. Я проверил значения RGB, они имеют значения, отличные от 0 и 255, я не могу отладить, почему, может кто-нибудь помочь мне с этим?

img = cv2.imread('C:/Comp_vision/image_data/black_and_white.jpg')

image_pixel =img.flatten()

bnw_cnt = sum(np.where((image_pixel == 0) | (image_pixel == 255), 1, 0))

if np.vectorize(bnw_cnt) == np.vectorize(image_pixel):
    print("Black and white image")
else:
    print ("Color image")

the image i used

1 Ответ

2 голосов
/ 03 октября 2019

Изображение будет иметь черно-белые цвета тогда и только тогда, когда для данного пикселя (x, y) значения на каждом канале будут равны.

Например:

def check_gray(img):
    for x in range(img.shape[0])
        for y in range(img.shape[1])
            b, g, r == img[x,y]
            if not(b == g == r):
                return False

    return True          
...