mogę znaleźć się na której pozycji źródła wizerunku pewna sub-obrazu na wyświetlaczu (np źródło: http://i.pictr.com/6xg895m69q.png sub-obrazu: http://i.pictr.com/jdaz9zwzej.png). O ile wiem, jest to niezbędne do przekształcenia tablice, aby uczynić je „czytelny” do OpenCV, to co próbowałem, ale z jakiegoś powodu nie działa. tutaj jest mój kod do tej pory:obrazu w obraz z cvMatchTemplate - ale jak?
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
moim celem jest napisanie współrzędne sub-obrazów w tablicy wynikowej (reszty tablicy powinny zachować wartość 0 (wiem, że mój kod przyzwyczajenie zrobić to . do tej pory) ten komunikat o błędzie, otrzymuję podczas wykonywania kodu.
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
jestem nowym OpenCV i naprawdę nie wiem, co zrobić z tym komunikatem o błędzie-ktoś się pomysł/wskaźnik co Zrobić?
dziękuję bardzo !! Twoje rozwiązanie działa świetnie! – julianschnell