python opencv將多個圖放在一個窗口的實例詳解
編程需求:使用python+opencv對圖像進行處理,把兩張圖放在一起顯示
方法:使用numpy模塊中的水平堆疊或豎直堆疊完成所有圖像的堆疊,最後當成一整張圖顯示。
註意:把不同的尺寸(寬和高)的圖片或不同的顏色通道在一起來展示,會發生黑屏,所以要麼把兩張圖的高度設置相同,要麼寬度相同。這樣才能正常顯示。
舉個栗子:
1.隻設置兩張圖的高相同,拼接兩圖,顯示;隻設置兩張圖的寬相同,拼接兩圖,顯示。
import cv2 import numpy as np #讀圖1和圖2 img1 = cv2.imread(r"C:\Users\thorne\PycharmProjects\biyesheji\image\3.jpg") img2 = cv2.imread(r"C:\Users\thorne\PycharmProjects\biyesheji\image\1.jpeg") #重新設置圖1的寬和高 img1 = cv2.resize(img1, (400, 400)) #設置圖2的高為400,與圖1相同,寬自己任意設置,我這裡設置為200 img2 = cv2.resize(img2, (200, 400)) #設置圖2的寬為300,與圖1相同,高自己任意設置,我這裡設置為200 img3 = cv2.resize(img2, (400, 200)) # 高度相同的圖像,橫向水平拼接圖 imgStackH = np.hstack((img1, img2)) # 寬度相同的圖像,垂直水平拼接圖 imgStackV = np.vstack((img1, img3)) # 在窗口顯示圖像 imgStackH 橫向水平拼接圖 cv2.imshow("DemoStackH", imgStackH) # 在窗口顯示圖像 imgStackV垂直水平拼接圖 cv2.imshow("DemoStackV", imgStackV) key = cv2.waitKey(0) # 等待按鍵命令
運行結果:寬度相同時拼接
高度相同時拼接
從上面結果可以看出,雖然兩張圖拼接到瞭一起,但是各自的比例完全不對,所以在使用這個方法的時候要知道:這個方法隻適用於兩張圖片/多張圖片 寬高比例相同或者相似的情況。
原本這兩張圖的比例是相似的,但是為瞭理解,上面的例子我把圖1的比例改瞭。
下面展示兩張比例相似的圖拼接的結果:(隻拼接高度相同的情況,寬度相同的情況與這個類似,就不寫瞭)
附代碼:
import cv2 import numpy as np #讀圖 img1 = cv2.imread(r"C:\Users\thorne\PycharmProjects\biyesheji\image\3.jpg") img2 = cv2.imread(r"C:\Users\thorne\PycharmProjects\biyesheji\image\1.jpeg") #1.設置兩個圖的高相同,然後拼接 #打印瞭解圖1的高:634 和寬:400 (shape方法第一個參數是 高) print(img1.shape) #打印瞭解圖2的寬和高:(1000, 667) print(img2.shape) #設置圖2的高為:634 resize設置寬和高的第二個參數是 高,圖2的寬自定義,這裡我設置的400 img2 = cv2.resize(img2, (400, 634)) # 高度相同圖像可以橫向水平拼接 imgStackH = np.hstack((img1, img2)) # 在窗口顯示橫向拼接圖像 imgStackH cv2.imshow("DemoStackH", imgStackH) key = cv2.waitKey(0) # 等待按鍵命令
到此這篇關於python opencv將多個圖放在一個窗口的文章就介紹到這瞭,更多相關python opencv多個圖放在一個窗口內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()的區別
- opencv-python圖像處理安裝與基本操作方法
- Python詳細講解圖像處理的而兩種庫OpenCV和Pillow
- python中opencv圖像疊加、圖像融合、按位操作的具體實現
- python計算機視覺OpenCV入門講解