Нахождение самого яркого пятна на изображении

Поэтому я пытаюсь найти самое яркое пятно на изображении и получить его координаты. Я уже нашел заранее написанный код, но он не работает должным образом, мне было интересно, если кто-нибудь может дать мне решение (я не слишком продвинут в программировании) . Также я использую видео отслеживаемого объекта, а не только фотографию.

Это код, который я пытаюсь использовать:

# import the necessary packages
import SimpleCV
import numpy as np
import argparse
import cv2


display = SimpleCV.Display()
cam = SimpleCV.Camera()
img = cv2.imread(args["image"]).flipHorizontal().toGray()

# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", help = "path to the image file")
ap.add_argument("-r", "--radius", type = int,
     help = "radius of Gaussian blur; must be odd")
args = vars(ap.parse_args())

# perform a naive attempt to find the (x, y) coordinates of
# the area of the image with the largest intensity value
(minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(gray)
cv2.circle(image, maxLoc, 5, (255, 0, 0), 2)

# display the results of the naive attempt
cv2.imshow("Naive", image)

# apply a Gaussian blur to the image then find the brightest
# region
gray = cv2.GaussianBlur(gray, (args["radius"], args["radius"]), 0)
(minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(gray)
image = orig.copy()
cv2.circle(image, maxLoc, args["radius"], (255, 0, 0), 2)

# display the results of our newly improved method
cv2.imshow("Robust", image)
cv2.waitKey(0)

но я получаю сообщение об ошибке:

NameError: the name 'args' is not defined

Это оригинальный код, который использует только фотографии:

# import the necessary packages
import numpy as np
import argparse
import cv2

 # construct the argument parse and parse the arguments
 ap = argparse.ArgumentParser()
 ap.add_argument("-i", "--image", help = "path to the image file")
 ap.add_argument("-r", "--radius", type = int,
    help = "radius of Gaussian blur; must be odd")
 args = vars(ap.parse_args())

 # load the image and convert it to grayscale
 image = cv2.imread(args["image"])
 orig = image.copy()
 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

 # perform a naive attempt to find the (x, y) coordinates of
 # the area of the image with the largest intensity value
 (minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(gray)
 cv2.circle(image, maxLoc, 5, (255, 0, 0), 2)

 # display the results of the naive attempt
 cv2.imshow("Naive", image)

# apply a Gaussian blur to the image then find the brightest
# region
gray = cv2.GaussianBlur(gray, (args["radius"], args["radius"]), 0)
(minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(gray)
image = orig.copy()
cv2.circle(image, maxLoc, args["radius"], (255, 0, 0), 2)

# display the results of our newly improved method
cv2.imshow("Robust", image)
cv2.waitKey(0)

0 ответов

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