Обнаружение цвета OpenCV Python с логическим выводом

Я использую этот скрипт для определения цвета:

# импортировать необходимые пакеты

    import numpy as np
    import argparse
    import cv2

# построить аргумент parse и разобрать аргументы

ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", help = "path to the image")
args = vars(ap.parse_args())

# загрузить изображение

image = cv2.imread(args["image"])

# определить список границ

boundaries = [
        ([100,50,220],[135,80,245]),
]

# цикл за границами

for (lower, upper) in boundaries:
        # create NumPy arrays from the boundaries
        lower = np.array(lower, dtype = "uint8")
        upper = np.array(upper, dtype = "uint8")

        # find the colors within the specified boundaries and apply
        # the mask
        mask = cv2.inRange(image, lower, upper)
        output = cv2.bitwise_and(image, image, mask = mask)
        print (output)

        # show the images
        cv2.imshow("images", np.hstack([image, output]))
        cv2.waitKey(0)

Мне нужна логическая переменная для определения цвета или нет. Как я могу это сделать?

С уважением Томас

1 ответ

Вот мое собственное решение:

# импортировать необходимые пакеты

import shutil
import numpy as np
import argparse
import cv2

# построить аргумент parse и разобрать аргументы

ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", help = "path to the image")
args = vars(ap.parse_args())

# загрузить изображение

image = cv2.imread(args["image"])

# определить список границ

boundaries = [
        ([100,50,220],[135,80,245]),
]

# цикл за границами

for (lower, upper) in boundaries:

# создавать массивы NumPy из границ

    lower = np.array(lower, dtype = "uint8")
    upper = np.array(upper, dtype = "uint8")

# найти цвета в указанных границах и применить маску

        mask = cv2.inRange(image, lower, upper)
        if np.sum(mask) < 100:
         shutil.move(args["image"], "/temp/")

С уважением Томас

Другие вопросы по тегам