Python-OpenCV中图像合并显示

Posted lfri

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于Python-OpenCV中图像合并显示的主要内容,如果未能解决你的问题,请参考以下文章

ios中图像的ScrollView

konvajs 中图像的圆形裁剪

☀️PyCharm+OpenCV中图像读取显示及保存☀️《❤️记得收藏❤️》

转载Qt中图像的显示与基本操作

Jcrop - 弹出窗口中图像尺寸较小的问题

Qt中图像的显示与基本操作