5

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

1 に答える 1

3

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

SimpleCVはデフォルトでRGB色空間を使用しているのに対し、ワープ後に返される画像はBGR色空間にあるのではないかと思います。どうなるか教えてください。

于 2012-04-16T16:12:57.117 に答える