我試圖使用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中添加。 –