2012-04-16 11 views
5

Estoy usando SimpleCV para unir imágenes. Realicé algunos cambios en el código GitHub de SimpleCV y, finalmente, la imagen se transformó correctamente. Pero el problema es que el color de la imagen después de transformarse cambia.Costura de imágenes SimpleCV: cambios de espacio de color después de deformar

He usado estas imágenes http://imgur.com/a/lrGw4. La salida de mi código es: http://i.imgur.com/2J722h.jpg

Este es mi código:

from SimpleCV import * 
import cv2 
import cv 

img1 = Image("s.jpg") 
img2 = Image("t.jpg") 

dst = Image((2000, 1600)) 

# Find the keypoints. 
ofimg = img1.findKeypointMatch(img2) 

# The homography matrix. 
homo = ofimg[1] 
eh = dst.getMatrix() 

# transform the image. 
x = Image(cv2.warpPerspective(np.array((img2.getMatrix())), homo, 
    (eh.rows, eh.cols+300), np.array(eh), cv.INTER_CUBIC)) 

# blit the img1 now on coordinate (0, 0). 
x = x.blit(img1, alpha=0.4) 
x.save("rishi1.jpg") 

Respuesta

3

Parece que estás utilizando una revisión antigua de SimpleCV. En la última versión de la forma de obtener la matriz de homografía es [1]:

ofimg[0].getHomography() 

Editar:

Parece que el problema del color que usted está mencionando es debido al cambio de espacio de color. Así que por favor cambiar la línea de deformar la imagen en:

x = Image(cv2.warpPerspective(np.array((img2.getMatrix())), homo, 
    (eh.rows, eh.cols+300), np.array(eh), cv.INTER_CUBIC), colorSpace=ColorSpace.RGB).toBGR() 

Sospecho que lo que está sucediendo es que la imagen es devuelta después de la deformación en el espacio de color BGR mientras SimpleCV por defecto utiliza el espacio de color RGB. Por favor déjame saber cómo va.

+0

Estoy usando la última versión de SimpleCV de github. Lo hice así porque hice algunos cambios en el código de SimpleCV. Antes de eso, la matriz de la homografía estaba equivocada. Pero ahora la imagen se transforma perfectamente, pero el color de la imagen transformada cambia. En la función findkeypointMatch cambié un poco de código. Aquí está el cambio que realicé https://github.com/ingenuitas/SimpleCV/pull/63/files. Pero el problema de color también estaba antes. – Rishi

+0

Edité la respuesta. No puedo ejecutar exactamente el código, pero escribí un script similar y encontré que el problema era el espacio de color invertido. – fireant

+0

increíble ... :). Tu lógica funcionó a la perfección. :). Gracias. – Rishi

Cuestiones relacionadas