2017-01-09 5 views
0

Ich verwende die Funktion imrect, um den ROI im Bild für die weitere Bearbeitung zu beschneiden. Ich habe zwei Bilder zu vergleichen (stellen Sie sich vor, sie sind die gleichen, aber mit unterschiedlicher Auflösung):Pflegen Sie die gleiche falsche Position bei unterschiedlicher Auflösung

Bild 1: 1024x1024 Pixel und Bild 2: 2000x2000 Pixel. Der Pixelwert ist bekannt, daher möchte ich die Größe von Bildern nicht ändern. Zunächst wähle ich den ROI in dem Bild 1, das ziehbare Rechteck mit:

imshow(image1); 
h=imrect(gca,[10 10 200 200]); position=wait(h); 
I=imcrop(image1,position); 

Dann öffnen I image2 die das gleiche Bild bei verschiedener Auflösung. Jetzt muss ich die Position von imrect berechnen, so würde es den gleichen ROI abdecken. Die Position der ROI in diesem Bild ist wegen der unterschiedlichen Auflösung unterschiedlich. Also sollte die Position der imrect auch anders sein.

Für image2 ich einen Code wie diese ausgeführt werden soll, aber ich weiß nicht, wie die Position variabel zu schätzen:

imshow(image2); 
I2=imcrop(image2,unknown_position); 

Wie kann ich die Position in image2 schätzen?

+1

ist keine schwarze Magie beteiligt. wenden Sie einfach die Regel von drei an ... Sie sollten wirklich an Ihren Mathefähigkeiten arbeiten, wenn Sie Bildverarbeitung machen möchten ... – Piglet

+0

wie dumm ich war. Danke, dass du meine Gedanken geklärt hast. – user2963789

Antwort

0

Mathe zur Rettung!

x_2 = x_1 * width_2/width_1 
y_2 = y_1 * height_2/height_1 
Verwandte Themen