Я использую слегка модифицированную версию этого кода (https://www.pyimagesearch.com/2014/08/04/opencv-python-color-detection/) вместе с OCR тессеракта, чтобы идентифицировать символ на наземном маркере с камеры на дроне. Этот маркер будет отличаться красным цветом, и яищу способ проверить, присутствует ли красный цвет на изображении, и если нет, проверить еще раз на следующем изображении (кадре видео).
Пока я просто ищу способиспользовать ошибку, которая появляется в cv2.inrange (), если красный отсутствует, чтобы отправить его обратно в начало кода, чтобы вручную можно было выбрать новое изображение для проверки. Я понимаю, что это может быть довольно просто, но я новичокна питона!
import numpy as np
import argparse
import cv2
from PIL import Image
# <<DETECT RED AREA OF IMAGE AND MASK OTHER COLOURS>>
# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", help = "path to the image")
args = vars(ap.parse_args())
# load the image
image = cv2.imread(args["image"])
# define the list of boundaries
boundaries = [([0, 0, 100], [0, 0, 255]),
]
# loop over the boundaries
for (lower, upper) in boundaries:
# create NumPy arrays from the boundaries
lower = np.array(lower, dtype = "uint8")
upper = np.array(upper, dtype = "uint8")
print(upper)
# 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)