Объединение двух изображений с помощью OpenCV

Я пытаюсь использовать OpenCV 2.1 для объединения двух изображения в одно, причем два изображения располагаются рядом друг с другом. В Python я делаю:

import numpy as np, cv

img1 = cv.LoadImage(fn1, 0)
img2 = cv.LoadImage(fn2, 0)

h1, w1 = img1.height,img1.width
h2, w2 = img2.height,img2.width

# Create an array big enough to hold both images next to each other.
vis = np.zeros((max(h1, h2), w1+w2), np.float32)

mat1 = cv.CreateMat(img1.height,img1.width, cv.CV_32FC1)
cv.Convert( img1, mat1 )

mat2 = cv.CreateMat(img2.height, img2.width, cv.CV_32FC1)
cv.Convert( img2, mat2 )

# Copy both images into the composite image.
vis[:h1, :w1] = mat1
vis[:h2, w1:w1+w2] = mat2

h,w = vis.shape
vis2 = cv.CreateMat(h, w, cv.CV_32FC3)
vis0 = cv.fromarray(vis)
cv.CvtColor(vis0, vis2, cv.CV_GRAY2BGR)
cv.ShowImage('test', vis2)
cv.WaitKey()

Два входных изображения:

https://code.ros.org/trac/opencv/browser/trunk/opencv/samples/c/box.png?rev= 2270

https://code.ros.org/trac/opencv/browser/trunk/opencv/samples/c/box_in_scene.png?rev=2270

Полученное изображение:

enter image description here

Это может быть сложно чтобы отличить от остальной части сайта, но большая часть изображения белая, что соответствует тому месту, где должны быть отдельные изображения. Черная область - это место, где данные изображения не записывались.

Почему все данные моего изображения конвертируются в белый цвет?

50
задан Cerin 28 September 2011 в 09:11
поделиться