2016-05-19 13 views
0

Versuchen, ROI (Region of Interest eines Bildes) verkleinern und fügen Sie es auf die normale Größe des Rests des Bildes. Es scheint nicht zu funktionieren, da es mir Fehler gibt. Der Code, den ich bis jetzt habe, ist, wo x1, x2, y1, y2 die Koordinaten des ursprünglichen roi sind.Shrink ROI in OpenCV Python

resize_roi = cv2.resize(roi,None,fx=0.5, fy=0.5, interpolation =cv2.INTER_CUBIC) #indentation wrong 
newimg_res = img.copy() 
newimg_res[y1:y2, x1:x2] = resize_roi 
cv2.imshow('Resize Rectangle',newimg_res) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 

Kann jemand vorschlagen, was ich falsch mache oder wie ich es beheben kann?

+0

Willkommen zu stackoverflow. Vielleicht sehen Sie sich zuerst hier an: http://stackoverflow.com/help/mcve Können Sie ein Bild hinzufügen, die Fehler hinzufügen und das erwartete Ergebnis beschreiben? – tfv

Antwort

0

Ihr Code versucht ein Unterbild aufzunehmen, es zu verkleinern und es dann wieder an den ursprünglichen Platz zu stellen. Das scheitert, weil das keinen Sinn ergibt. Die Art und Weise zu beheben diese auf Ihrem Zweck abhängt, sondern ein Weg wäre, die Größe des Abschnitts zu ändern, den Sie zu ersetzen versuchen, ex:

import numpy as np 
import cv2 
img = cv2.imread('pic.jpe') 
x1, x2, y1, y2 = 45, 145, 45, 145 
roi = img[y1:y2, x1:x2] 
resize_roi = cv2.resize(roi,None,fx=0.5, fy=0.5, interpolation =cv2.INTER_CUBIC) #indentation wrong 
newimg_res = img.copy() 
newimg_res[(.5 * y1):(.5 * y2), (.5 * x1):(.5 * x2)] = resize_roi 
cv2.imshow('Resize Rectangle',newimg_res) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 

Während das ohne Fehler ausgeführt wird, kann ich nicht wissen, ob dies ist was Sie wollen ohne weitere Informationen über Ihren Zweck/erwartete Ausgabe