Python 图像拼接SimpleCV:扭曲后颜色空间发生变化

Python 图像拼接SimpleCV:扭曲后颜色空间发生变化,python,image,opencv,colors,simplecv,Python,Image,Opencv,Colors,Simplecv,我正在使用SimpleCV来缝合图像。我对SimpleCV的GitHub代码做了一些更改,最终正确地转换了图像。但问题是,变换后图像的颜色会发生变化 我用过这些图片。我的代码的输出是: 这是我的代码: from SimpleCV import * import cv2 import cv img1 = Image("s.jpg") img2 = Image("t.jpg") dst = Image((2000, 1600)) # Find the keypoints. ofimg = im

我正在使用SimpleCV来缝合图像。我对SimpleCV的GitHub代码做了一些更改,最终正确地转换了图像。但问题是,变换后图像的颜色会发生变化

我用过这些图片。我的代码的输出是:

这是我的代码:

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")

看起来您使用的是SimpleCV的旧版本。在最新版本中,获得单应矩阵的方法是[]:

编辑:

你提到的颜色问题似乎是由于颜色空间的变化。因此,请更改扭曲图像的线条:

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

我怀疑发生的情况是,扭曲后返回的图像位于BGR颜色空间中,而SimpleCV默认使用RGB颜色空间。请告诉我进展如何。

我正在使用github的最新版本的SimpleCV。我这样做是因为我对SimpleCV的代码做了一些更改。在此之前,单应矩阵本身是错误的。但是现在图像被完美地变换了,但是变换后图像的颜色发生了变化。在findkeypointMatch函数中,我更改了一些代码。这是我所做的改变。但是颜色问题以前也有,我编辑了答案。我不能完全运行您的代码,但我编写了一个类似的脚本,并发现问题在于反转的颜色空间。
x = Image(cv2.warpPerspective(np.array((img2.getMatrix())), homo,
  (eh.rows, eh.cols+300), np.array(eh), cv.INTER_CUBIC), colorSpace=ColorSpace.RGB).toBGR()