python+opencv實(shí)現(xiàn)堆疊圖片
本文實(shí)例為大家分享了python+opencv實(shí)現(xiàn)堆疊圖片的具體代碼,供大家參考,具體內(nèi)容如下
# import cv2
# import numpy as np
#
# img = cv2.imread('../images/full.jpg')
#
# img_hor = np.hstack((img,img))
# img_ver = np.vstack((img,img))
#
# cv2.imshow('Horizontal',img_hor)
# cv2.imshow('Vertical',img_ver)
#
# cv2.waitKey(0)
?
import cv2
import numpy as np
?
?
def stackImages(scale,imgArray):
? ? rows = len(imgArray)
? ? cols = len(imgArray[0])
? ? rowsAvailable = isinstance(imgArray[0], list)
? ? width = imgArray[0][0].shape[1]
? ? height = imgArray[0][0].shape[0]
? ? if rowsAvailable:
? ? ? ? for x in range ( 0, rows):
? ? ? ? ? ? for y in range(0, cols):
? ? ? ? ? ? ? ? if imgArray[x][y].shape[:2] == imgArray[0][0].shape [:2]:
? ? ? ? ? ? ? ? ? ? imgArray[x][y] = cv2.resize(imgArray[x][y], (0, 0), None, scale, scale)
? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? imgArray[x][y] = cv2.resize(imgArray[x][y], (imgArray[0][0].shape[1], imgArray[0][0].shape[0]), None, scale, scale)
? ? ? ? ? ? ? ? if len(imgArray[x][y].shape) == 2: imgArray[x][y]= cv2.cvtColor( imgArray[x][y], cv2.COLOR_GRAY2BGR)
? ? ? ? imageBlank = np.zeros((height, width, 3), np.uint8)
? ? ? ? hor = [imageBlank]*rows
? ? ? ? hor_con = [imageBlank]*rows
? ? ? ? for x in range(0, rows):
? ? ? ? ? ? hor[x] = np.hstack(imgArray[x])
? ? ? ? ver = np.vstack(hor)
? ? else:
? ? ? ? for x in range(0, rows):
? ? ? ? ? ? if imgArray[x].shape[:2] == imgArray[0].shape[:2]:
? ? ? ? ? ? ? ? imgArray[x] = cv2.resize(imgArray[x], (0, 0), None, scale, scale)
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? imgArray[x] = cv2.resize(imgArray[x], (imgArray[0].shape[1], imgArray[0].shape[0]), None,scale, scale)
? ? ? ? ? ? if len(imgArray[x].shape) == 2: imgArray[x] = cv2.cvtColor(imgArray[x], cv2.COLOR_GRAY2BGR)
? ? ? ? hor= np.hstack(imgArray)
? ? ? ? ver = hor
? ? return ver
?
img = cv2.imread('../images/lanbojini.jpg')
imgGray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
?
imgStack = stackImages(0.5,([img,imgGray,img],[img,img,img]))
?
# imgStack = stackImages(0.5,([img,imgGray,img],[img,img,img]))
?
# imgHor = np.hstack((img,img))
# imgVer = np.vstack((img,img))
#
# cv2.imshow("Horizontal",imgHor)
# cv2.imshow("Vertical",imgVer)
cv2.imshow("ImageStack",imgStack)
?
cv2.waitKey(0)效果:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python?OpenCV超詳細(xì)講解調(diào)整大小與圖像操作的實(shí)現(xiàn)
- Python?OpenCV超詳細(xì)講解讀取圖像視頻和網(wǎng)絡(luò)攝像頭
- Python中使用Opencv開(kāi)發(fā)停車(chē)位計(jì)數(shù)器功能
- 關(guān)于python3?opencv?圖像二值化的問(wèn)題(cv2.adaptiveThreshold函數(shù))
- Python?OpenCV實(shí)現(xiàn)圖形檢測(cè)示例詳解
- Python?OpenCV實(shí)現(xiàn)3種濾鏡效果實(shí)例
- python?OpenCV?圖像通道數(shù)判斷
- 巧妙使用python?opencv庫(kù)玩轉(zhuǎn)視頻幀率
- python?使用OpenCV進(jìn)行曝光融合
相關(guān)文章
利用Python批量識(shí)別電子賬單數(shù)據(jù)的方法
這篇文章主要介紹了利用Python批量識(shí)別電子賬單數(shù)據(jù)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
Qt自定義Plot實(shí)現(xiàn)曲線(xiàn)繪制的詳細(xì)過(guò)程
這篇文章主要介紹了Qt自定義Plot實(shí)現(xiàn)曲線(xiàn)繪制,包含arm觸摸屏多點(diǎn)觸控縮放(只支持兩點(diǎn)),實(shí)時(shí)曲線(xiàn)繪制,數(shù)據(jù)點(diǎn)根據(jù)繪制寬度優(yōu)化,跟蹤點(diǎn)數(shù)據(jù)獲取,雙坐標(biāo)等功能,需要的朋友可以參考下2021-11-11
使用Python在Excel中實(shí)現(xiàn)自動(dòng)查找并替換數(shù)據(jù)
隨著項(xiàng)目的進(jìn)展,需要經(jīng)常在Excel業(yè)務(wù)表格中查找及替換數(shù)據(jù),已保證數(shù)據(jù)與實(shí)際項(xiàng)目進(jìn)度一致,手動(dòng)一個(gè)一個(gè)查找,然后替換,效率太低,還容易遺漏,現(xiàn)在我們來(lái)試試用Python自動(dòng)完成查找及替換吧,需要的朋友可以參考下2023-12-12
python調(diào)用Matplotlib繪制分布點(diǎn)并且添加標(biāo)簽
這篇文章主要為大家詳細(xì)介紹了python調(diào)用Matplotlib繪制分布點(diǎn)并且添加標(biāo)簽的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
Python數(shù)據(jù)分析之?Matplotlib?折線(xiàn)圖繪制
這篇文章主要介紹了Python數(shù)據(jù)分析之?Matplotlib?折線(xiàn)圖繪制,在數(shù)據(jù)分析中,數(shù)據(jù)可視化也非常重要,下文通過(guò)數(shù)據(jù)分析展開(kāi)對(duì)折線(xiàn)圖的繪制,需要的小伙伴可以參考一下2022-05-05
Python運(yùn)行提示缺少模塊問(wèn)題解決方案
這篇文章主要介紹了Python運(yùn)行提示缺少模塊問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Python中super()函數(shù)簡(jiǎn)介及用法分享
本文給大家分享的是Python中的super函數(shù)的簡(jiǎn)單介紹以及用法和注意事項(xiàng),有需要的小伙伴可以參考下2016-07-07

