您好,登錄后才能下訂單哦!
這篇文章主要介紹了怎么用python opencv將多個圖放在一個窗口的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇怎么用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將多個圖放在一個窗口”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。