Member 13923049 Ответов: 0

Я пытаюсь многомасштабного в Python и это не работает


Линия 37-39 не работает. Кроме того, мы не знаем и не можем узнать, что такое командные строки и аргументы для argparse. Нам действительно нужна визуальная линия.

Что я уже пробовал:

# ИСПОЛЬЗОВАНИЕ
# python match.py --шаблон cod_logo.png --изображения Изображения

# импорт необходимых пакетов
импорт включает в себя как НП
импорт argparse
импорт imutils
импорт глобуса
импорт cv2

# постройте синтаксический анализатор аргументов и проанализируйте их
ap = argparse.ArgumentParser()
АП.add_argument("-Т", "--шаблон", требуется=true, то помочь="путь до изображения шаблона")
АП.add_argument("-я", "--образы" требуется=истина,
help="путь к изображениям, где будет сопоставлен шаблон")
АП.add_argument("-V" и " - представьте",
help="флаг, указывающий, следует ли визуализировать каждую итерацию")
параметр args = Варс(АП.parse_args())

# загрузите изображение изображения, преобразуйте его в оттенки серого и обнаружьте края
template = cv2.imread(args["/home/pi/Downloads/opencv-template-for-matching.jpg"])
шаблон = cv2.cvtColor(шаблон, cv2.COLOR_BGR2GRAY)
template = cv2.Canny(template, 50, 200)
(tH, tW) = шаблон.форма[:2]
cv2.imshow("Template", шаблон)

# цикл по изображениям, чтобы найти шаблон в
для imagePath в glob.glob(args["images"] + "/*.jpg"):
# загрузите изображение, преобразуйте его в оттенки серого и инициализируйте
# бухгалтерская переменная для отслеживания совпадающего региона
изображение = cv2.imread("/home/pi/Downloads/opencv-template-matching-python-tutorial.jpg")
серый = cv2.cvtColor(изображение, cv2.COLOR_BGR2GRAY)
найти ни одной

# петля по масштабам изображения
для масштаба в np.linspace(0.2, 1.0, 20)[::-1]:
# измените размер изображения в соответствии с масштабом и следите за ним
# о соотношении изменения размера
resized = imutils.resize(серый, width = int(серый.shape[1] * масштаб))
r = gray.shape[1] / float(resized.shape[1])

# если размер изображения меньше размера шаблона, то разбейте его
# из цикла
если изменяется.Форма[0] &ЛТ; ом или измененным.форма[1] &ЛТ; ТВт:
перерыв

# обнаружение краев в измененном размере изображения в оттенках серого и применение шаблона
# сопоставление, чтобы найти шаблон на изображении
edged = cv2.Canny(размер, 50, 200)
результат = cv2.matchTemplate(обрезной, шаблон, cv2.TM_CCOEFF)
(_, maxVal, _, maxLoc) = cv2.minMaxLoc(результат)

# проверить, чтобы увидеть, если итерации должны быть визуализированы
if args.get("визуализировать", False):
# нарисуйте ограничивающую рамку вокруг обнаруженной области
клон = НП.dstack([обрезная, доска обрезная, доска обрезная])
cv2.rectangle(clone, (maxLoc[0], maxLoc[1]),
(maxLoc[0] + tW, maxLoc[1] + tH), (0, 0, 255), 2)
cv2.imshow("визуализация", клонирование)
cv2.waitKey(0)

# если мы нашли новое максимальное значение корреляции, то ipdate
# переменная бухгалтерского учета
если найдено-нет или maxVal > найдено[0]:
найдено = (maxVal, maxLoc, r)

# распакуйте бухгалтерский вариабель и вычислите координаты (x, y).
# ограничивающего прямоугольника на основе измененного соотношения размеров
(_, maxLoc, r) = найдено
(startX, startY) = (int(maxLoc[0] * r), int(maxLoc[1] * r))
(endX, endY) = (int((maxLoc[0] + tW) * r), int((maxLoc[1] + tH) * r))

# нарисуйте ограничивающую рамку вокруг обнаруженного результата и отобразите изображение
cv2.прямоугольник(изображения, (командой StartX, старты), (endX, Энди), (0, 0, 255), 2)
cv2.imshow("изображение", image)
cv2.waitKey(0)

Richard MacCutchan

-Линия 37-39 не работает."
И какие это линии, и что на самом деле означает "не работает"?

"не удается выяснить, каковы командные строки и аргументы для argparse"
Но вы написали программу, так что вы должны знать.

0 Ответов