我试图使用OpenCV 2.1将两张图片合并为一张,两张图片彼此相邻。在Python,我做:将两张图片与OpenCV结合起来
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
产生的图像是:
它可能很难d从场地的其余部分熄灭,但大部分图像是白色的,对应于各个图像应该在哪里。黑色区域是没有图像数据写入的地方。
为什么我的所有图像数据都被转换为白色?
你见过[find_obj.py样品(https://code.ros.org/trac/opencv/browser/trunk/opencv/ samples/python2/find_obj.py)来自OpenCV 2.3.1?它看起来和你想要做的一模一样。 –
@Andrey,是的,这正是我试图转换为OpenCV 2.1的原因。我没有2.3并且无法编译,所以我现在正在使用2.1。 – Cerin
您也可以创建一个关于编译问题的问题。我认为这是可以解决的。请注意,此示例的flann部分不能用OpenCV 2.1实现,因为flann索引的python绑定仅在2.3.1中添加。 –