Python-OpenCV中圖像合並顯示


在圖像處理中,我們通常需要將原圖像與處理后的圖像放在同一個窗口顯示,這樣便於比較。

 

首先,需要介紹Numpy中的兩個函數:hstack()vstack()

函數原型:hstack(tup) ,參數tup可以是元組,列表,或者numpy數組,返回結果為numpy的數組。看下面的代碼體會它的含義:

import numpy as np
a=[1,2,3]
b=[4,5,6]
print(np.hstack((a,b)))

輸出:[1 2 3 4 5 6 ]
import numpy as np
a=[[1],[2],[3]]
b=[[1],[2],[3]]
c=[[1],[2],[3]]
d=[[1],[2],[3]]
print(np.hstack((a,b,c,d)))

輸出:
[[1 1 1 1]
 [2 2 2 2]
 [3 3 3 3]]

它其實就是水平(按列順序)把數組給堆疊起來,vstack()函數正好和它相反。

import numpy as np
a=[1,2,3]
b=[4,5,6]
print(np.hstack((a,b)))

輸出:[1 2 3 4 5 6 ]
import numpy as np
a=[[1],[2],[3]]
b=[[1],[2],[3]]
c=[[1],[2],[3]]
d=[[1],[2],[3]]
print(np.hstack((a,b,c,d)))

輸出:
[[1 1 1 1]
 [2 2 2 2]
 [3 3 3 3]]

 

這樣圖像的合並操作就非常簡單了,視為二維數組的操作即可(可忽略通道)

import cv2
import numpy as np

img = cv2.imread("./Pictures/a.png")
img = cv2.resize(img, None, fx=0.5, fy=0.5)    #為了完整顯示,縮小一倍
blur2 = cv2.blur(img, (2,2))
blur3 = cv2.blur(img, (5,5))
blur4 = cv2.blur(img, (10,10))

htich = np.hstack((img,blur2))
htich2 = np.hstack((blur3,blur4))
vtich = np.vstack((htich, htich2))

cv2.imshow("merged_img", vtich)
cv2.waitKey(0)
cv2.destroyAllWindows()

效果:

 

 

參考鏈接:

1、https://blog.csdn.net/csdn15698845876/article/details/73380803

2、https://blog.csdn.net/wugui1111/article/details/80706411


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM