【问题标题】:Image stitching SimpleCV: colorspace changes after warping图像拼接 SimpleCV:翘曲后的色彩空间变化
【发布时间】:2012-04-27 19:54:50
【问题描述】:

我正在使用 SimpleCV 拼接图像。我对 SimpleCV 的 GitHub 代码进行了一些更改,最终正确转换了图像。但问题是,转换后的图像颜色发生了变化。

我使用了这些图片http://imgur.com/a/lrGw4。我的代码输出为:http://i.imgur.com/2J722h.jpg

这是我的代码:

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

【问题讨论】:

    标签: python image opencv colors simplecv


    【解决方案1】:

    看来您使用的是 SimpleCV 的旧版本。最新版本获取单应矩阵的方法是[1]:

    ofimg[0].getHomography()
    

    编辑:

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

    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 函数中,我更改了一些代码。这是我执行的更改github.com/ingenuitas/SimpleCV/pull/63/files。但是颜色问题以前也有。
    • 我编辑了答案。我不能完全运行你的代码,但写了一个类似的脚本,发现问题出在反转的颜色空间上。
    猜你喜欢
    • 2014-10-21
    • 1970-01-01
    • 2021-03-24
    • 2013-07-01
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    相关资源
    最近更新 更多