OpenCV將兩張圖片拼接成一張圖片
- 示例代碼1
- 示例代碼2
- 可以用opencv或者numpy的拼接函數,直接將兩張圖拼接到一起,很簡單方便,參考代碼2,推薦此方式。
- 新建圖片,將兩張圖片的像素值填充到新圖片對應位置上即可,參考代碼1。
示例代碼1
以下是將兩張圖片拼接成一張圖片的示例代碼:
import cv2
import numpy as np # 三通道
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')# 確定兩張圖片的大小
height, width, channels = img1.shape
new_width = width + img2.shape[1]# 創建一張新的圖片
new_img = np.zeros((height, new_width, channels), dtype=np.uint8)# 將第一張圖片復制到新圖片的左側
new_img[:,:width,:] = img1# 將第二張圖片復制到新圖片的右側
new_img[:,width:,:] = img2# 顯示合并后的圖片
cv2.imshow('Merged Image', new_img)# 等待關閉窗口
cv2.waitKey(0)# 釋放資源
cv2.destroyAllWindows()
示例代碼2
以下是將兩張圖片在同一個窗口顯示的示例代碼:
import cv2
import numpy as np img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')## 使用numpy
# 將兩張圖片垂直堆疊
img_vstack = np.vstack((img1, img2))# 將兩張圖片橫向拼接在一起
result = np.hstack([img1, img2])# 將兩張圖片拼接到一起
img = np.concatenate((img1, img2), axis=1)## 使用opencv
vimg = cv2.vconcat((img1, img2)) # 垂直方向
himg = cv2.hconcat((img1, img2)) # 水平方向# 顯示圖片
cv2.imshow('Two Images in One Window', img_vstack)
cv2.waitKey(0)
cv2.destroyAllWindows()