Ich möchte herausfinden, an welcher Position eines Quellbildes ein bestimmtes Teilbild erscheint (z. B. Quellbild: http://i.pictr.com/6xg895m69q.png, Teilbild: http://i.pictr.com/jdaz9zwzej.png). Soweit ich weiß, ist es notwendig, die Arrays zu transformieren, um sie für OpenCV "lesbar" zu machen, das ist es was ich versuchte, aber aus irgendeinem Grund funktioniert es nicht. hier ist mein Code so weit:Bild in Bild mit cvMatchTemplate - aber wie?
from PIL import Image
import numpy
from pylab import *
import cv2
import cv
image = cv2.imread('source_img.jpg')
template = cv2.imread('template_img.jpg')
im = cv.fromarray(image)
templ = cv.fromarray(template)
result = numpy.zeros(shape=(1,10)) ##create a matrix with 0s
a = cv.fromarray(result)
cv.MatchTemplate(im, templ, a, cv.CV_TM_CCORR)
print result
print image
mein Ziel ist es, die Koordinaten der Teilbilder im Ergebnisfeld (der Rest des Feldes schreiben soll den Wert hält 0 (Ich weiß, dass mein Code wird nicht das machen . Meldung bislang) dieser Fehler, erhalte ich, wenn der Code ausgeführt wird.
OpenCV Error: Assertion failed (result.size() == cv::Size(std::abs(img.cols - templ.cols) + 1, std::abs(img.rows - templ.rows) + 1) && result.type() == CV_32F) in cvMatchTemplate, file /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_opencv/opencv/work/OpenCV-2.4.3/modules/imgproc/src/templmatch.cpp, line 376 Traceback (most recent call last): File "/Users/strongbow/imagerecognition.py", line 27, in cv.MatchTemplate(im, templ, a, cv.CV_TM_CCORR) cv2.error: result.size() == cv::Size(std::abs(img.cols - templ.cols) + 1, std::abs(img.rows - templ.rows) + 1) && result.type() == CV_32F
ich bin neu in OpenCV und wirklich nicht wissen, was mit dieser Fehlermeldung zu tun jemand eine Idee/Zeiger was zu tun?
danken Ihnen soviel !! Ihre Lösung funktioniert großartig! – julianschnell