Задать вопрос
@JRBRO

Как правильно сделать сравнение?

Дано:
  • Два изображения и один общий объект
  • Два изображения одинаковы между собой, но там есть сдвиг
  • Есть вывод в консоли с координатами объекта
  • Первое изображение это референс
  • Второе изображение это то, в котором надо проверить


Есть скрипт, который находит объект на изображении и выводит в консоль его координаты
Тык

import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
img = cv.imread('table.png',0)
img2 = img.copy()
template = cv.imread('part.png',0)
w, h = template.shape[::-1]
methods = ['cv.TM_CCOEFF']
for meth in methods:
    img = img2.copy()
    method = eval(meth)
    res = cv.matchTemplate(img,template,method)
    min_val, max_val, min_loc, max_loc = cv.minMaxLoc(res)
    # If the method is TM_SQDIFF or TM_SQDIFF_NORMED, take minimum
    if method in [cv.TM_SQDIFF, cv.TM_SQDIFF_NORMED]:
        top_left = min_loc
    else:
        top_left = max_loc
    bottom_right = (top_left[0] + w, top_left[1] + h)
    print(bottom_right)
    cv.rectangle(img,top_left, bottom_right, 255, 2)

    plt.title('Matching Result'), plt.xticks([]), plt.yticks([])
    plt.subplot(122),plt.imshow(img,cmap = 'gray')
    plt.title('Detected Point'), plt.xticks([]), plt.yticks([])
    plt.suptitle(meth)
    plt.show()


Как правильно написать логику, чтобы:
  • Скрипт проверял первое изображение
  • Проверял второе изображение
  • Сравнивал полученные координаты
  • Если отклонение больше 5 пикселей он мне кричал (желательно конечно куда-то, но это уже совершенно другая история)


Логику я плюс минус понимаю, но не понимаю практически, как прогнать два изображения поочередно и сравнить выводы
  • Вопрос задан
  • 119 просмотров
Подписаться 2 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
шо, не шмогла?

Два изображения одинаковы между собой, но там есть сдвиг

если ты будешь продолжать думать колхозными терминами "текстовый файл все что Word", у тебя никогда ничего не получится: они или одинаковы, или нет, в одинаковых нет сдвигов и свихов

я тебе в топике описал - надо находить объект и по нему определять сдвиг, затем сдвигать
что еще непонятно?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы