Je suis en train d'essayer d'utiliser OpenCV 2.1 pour combiner deux images en une seule, avec les deux images placées côte à côte. En Python, je fais :
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
# Créer un tableau assez grand pour contenir les deux images côte à côte.
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)
# Copier les deux images dans l'image composite.
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()
Les deux images d'entrée sont :
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
L'image résultante est :
Il peut être difficile de la distinguer du reste du site, mais la plupart de l'image est blanche, correspondant à l'endroit où les images individuelles devraient être. La zone noire est là où aucune donnée d'image n'a été écrite.
Pourquoi toutes mes données d'image sont-elles converties en blanc ?