Ich habe diese MATLAB-Funktion. Als ich es ausführte, tauchte die folgende Fehlermeldung auf. Kann mir jemand einen Hinweis geben? Vielen Dank. Der Code wird auch unten angezeigt.Problem mit MATLAB-Funktionen
[h, im_matched, theta, I, J] = im_reg_MI ('keyframe1.jpg', 'keyframe2.jpg', 0, 1) ??? Undefinierte Funktion oder Variable "h".
Fehler in ==> im_reg_MI bei 74 [a, b] = max (h (:));% der max von MI zu finden und indecises
Unten ist der Code.
[h,im_matched, theta,I,J]=im_reg_MI(image1, image2, angle, step)
[m,n]=size(image1);
[p,q]=size(image2);
[a,b]=size(angle);
im1=round(image1);
for k=1:b
J = rotate_image(angle(k),image2); %rotated cropped IMAGE2
image21=round(J);
[m1,n1]=size(image21);
for i=1:step:(m1-m)
for j=1:step:(n1-n)
im2=image21(i:(i+m-1),j:(j+n-1)); % selecting part of IMAGE2 matching the size of IMAHE1
im2=round(im2);
h(k,i,j)=MI2(im1,im2); % calculating MI
end
end
end
[a, b] = max(h(:));% finding the max of MI and indecises
Hallo gnovice. Danke für die Hilfe. Ich folgte Ihrem Vorschlag und übergab die Bilddaten an im_reg_MI, aber derselbe Fehler kam wieder. Übrigens, zu Ihrer Information befindet sich der MI2 (im1, im2), der im obigen Code aufgerufen wird, im selben Verzeichnis. Ich denke, es sollte nicht das Problem sein. Ich weiß nicht, welcher Teil falsch ist. – view
@appi: Ich habe einen zusätzlichen potentiellen Fehler innerhalb von 'im_reg_MI' gefunden, der bei bestimmten Bildgrößen auftritt. Ich fügte meiner Antwort eine Erklärung hinzu. – gnovice
Danke für die Erklärung! Es hilft mir sehr! – view