python opencv將多個(gè)圖放在一個(gè)窗口的實(shí)例詳解
編程需求:使用python+opencv對(duì)圖像進(jìn)行處理,把兩張圖放在一起顯示
方法:使用numpy模塊中的水平堆疊或豎直堆疊完成所有圖像的堆疊,最后當(dāng)成一整張圖顯示。
注意:把不同的尺寸(寬和高)的圖片或不同的顏色通道在一起來展示,會(huì)發(fā)生黑屏,所以要么把兩張圖的高度設(shè)置相同,要么寬度相同。這樣才能正常顯示。
舉個(gè)栗子:
1.只設(shè)置兩張圖的高相同,拼接兩圖,顯示;只設(shè)置兩張圖的寬相同,拼接兩圖,顯示。
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") #重新設(shè)置圖1的寬和高 img1 = cv2.resize(img1, (400, 400)) #設(shè)置圖2的高為400,與圖1相同,寬自己任意設(shè)置,我這里設(shè)置為200 img2 = cv2.resize(img2, (200, 400)) #設(shè)置圖2的寬為300,與圖1相同,高自己任意設(shè)置,我這里設(shè)置為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) # 等待按鍵命令
運(yùn)行結(jié)果:寬度相同時(shí)拼接
高度相同時(shí)拼接
從上面結(jié)果可以看出,雖然兩張圖拼接到了一起,但是各自的比例完全不對(duì),所以在使用這個(gè)方法的時(shí)候要知道:這個(gè)方法只適用于兩張圖片/多張圖片 寬高比例相同或者相似的情況。
原本這兩張圖的比例是相似的,但是為了理解,上面的例子我把圖1的比例改了。
下面展示兩張比例相似的圖拼接的結(jié)果:(只拼接高度相同的情況,寬度相同的情況與這個(gè)類似,就不寫了)
附代碼:
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.設(shè)置兩個(gè)圖的高相同,然后拼接 #打印了解圖1的高:634 和寬:400 (shape方法第一個(gè)參數(shù)是 高) print(img1.shape) #打印了解圖2的寬和高:(1000, 667) print(img2.shape) #設(shè)置圖2的高為:634 resize設(shè)置寬和高的第二個(gè)參數(shù)是 高,圖2的寬自定義,這里我設(shè)置的400 img2 = cv2.resize(img2, (400, 634)) # 高度相同圖像可以橫向水平拼接 imgStackH = np.hstack((img1, img2)) # 在窗口顯示橫向拼接圖像 imgStackH cv2.imshow("DemoStackH", imgStackH) key = cv2.waitKey(0) # 等待按鍵命令
到此這篇關(guān)于python opencv將多個(gè)圖放在一個(gè)窗口的文章就介紹到這了,更多相關(guān)python opencv多個(gè)圖放在一個(gè)窗口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python3獲取當(dāng)前目錄的實(shí)現(xiàn)方法
這篇文章主要介紹了python3獲取當(dāng)前目錄的實(shí)現(xiàn)方法,文中給大家提到了python3獲取當(dāng)前目錄和上級(jí)目錄的方法,需要的朋友可以參考下2019-07-07Python語言規(guī)范之Pylint的詳細(xì)用法
Pylint 是一個(gè) Python 代碼分析工具,它分析 Python 代碼中的錯(cuò)誤,查找不符合代碼風(fēng)格標(biāo)準(zhǔn)(Pylint 默認(rèn)使用的代碼風(fēng)格是 PEP 8)和有潛在問題的代碼,接下來通過本文給大家介紹Python Pylint的使用,感興趣的朋友一起看看吧2021-06-06python腳本實(shí)現(xiàn)mp4中的音頻提取并保存在原目錄
這篇文章主要介紹了python腳本實(shí)現(xiàn)mp4中的音頻提取并保存在原目錄,本文給大家通過實(shí)例代碼介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02Python錯(cuò)誤提示:[Errno 24] Too many open files的分析與解決
這篇文章主要給大家介紹了Python中出現(xiàn)錯(cuò)誤提示:[Errno 24] Too many open files的分析與解決,需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02對(duì)python dataframe邏輯取值的方法詳解
今天小編就為大家分享一篇對(duì)python dataframe邏輯取值的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01Python自動(dòng)化測試selenium指定截圖文件名方法
這篇文章主要介紹了Python自動(dòng)化測試selenium指定截圖文件名方法,Selenium?支持?Web?瀏覽器的自動(dòng)化,它提供一套測試函數(shù),用于支持?Web?自動(dòng)化測試,下文基于python實(shí)現(xiàn)指定截圖文件名方法,需要的小伙伴可以參考一下2022-05-05