Python np.hstack和np.vstack未运行
我想结合三个图像Python np.hstack和np.vstack未运行,python,opencv,opencv-python,Python,Opencv,Opencv Python,我想结合三个图像 img = cv2.imread('Lenna_(test_image).png', 0) dim = (256, 256) resizedLena = cv2.resize(img, dim, interpolation = cv2.INTER_LINEAR) Y是由img修改的图像,X是由img修改的另一图像,但等于img 现在,我想把img,Y,X与这个命令结合起来 newIMG = np.vstack((resizedLena, Y)) outputIMG = np.
img = cv2.imread('Lenna_(test_image).png', 0)
dim = (256, 256)
resizedLena = cv2.resize(img, dim, interpolation = cv2.INTER_LINEAR)
Y
是由img
修改的图像,X
是由img
修改的另一图像,但等于img
现在,我想把img,Y,X
与这个命令结合起来
newIMG = np.vstack((resizedLena, Y))
outputIMG = np.vstack((newIMG, X))
cv2.imshow('return IMG', outputIMG)
cv2.waitKey(0)
cv2.destroyAllWindows()
结果:
img
Y
X
感谢任何人帮助我获取不同大小的图像,您可以使用
numpy
组合它们。然后可以创建水平图像
您需要确定索引
例如:
- 如果第一个图像从
0:h1,0:w1开始
- 第二个图像从
0:h1,w1:w1+w2开始
- 第三个图像从
0:h1,w1+w2:w1+w2+w3开始
- 第四幅图像从
0:h1,w1+w2+w3:w1+w2+w3+w4开始
从cv2导入imread、imshow、waitKey
从cv2导入IMREAD\U灰度,imwrite
从numpy导入零
img1=imread(“1.png”,imread\u灰度)
img2=imread(“2.png”,imread\u灰度)
img3=imread(“3.png”,imread\u灰度)
img4=imread(“4.png”,imread\u灰度)
(h1,w1)=img1.形状[:2]
(h2,w2)=img2.形状[:2]
(h3,w3)=img3.形状[:2]
(h4,w4)=img4.形状[:2]
out=零((h1,w1+w2+w3+w4),dtype=“uint8”)
out[0:h1,0:w1]=img1
out[0:h1,w1:w1+w2]=img2
out[0:h1,w1+w2:w1+w2+w3]=img3
out[0:h1,w1+w2+w3:w1+w2+w3+w4]=img4
imwrite(“out.png”,out)
imshow(“out”,out)
等待键(0)
使用一行代码的三种最佳方法但是,要连接的图像必须具有相同的尺寸,尤其是相同的通道数。
导入cv2
将numpy作为np导入
img=cv2.imread('image.jpg')
dim=(256,256)
resizedLena=cv2.调整大小(img、dim、插值=cv2.内部线性)
十、 Y=resizedLena,resizedLena
#方法1:使用Numpy(hstack,vstack)
熔合水平=np.hstack((尺寸,Y,X))
Fusion_Vertical=np.vstack((newIMG,X))
cv2.imshow(“使用vstack的垂直融合”,垂直融合)
cv2.等待键(0)
#方法2:使用Numpy(康塔纳)
熔合垂直=np。连接((大小调整,X,Y),轴=0)
Fusion_Horizontal=np.连接((大小调整为A,X,Y),轴=1)
cv2.imshow(“融合水平使用串联”,融合水平)
cv2.等待键(0)
#方法3:使用OpenCV(vconcat、hconcat)
Fusion_Vertical=cv2.vconcat([resizedLena,X,Y])
Fusion_Horizontal=cv2.hconcat([resizedLena,X,Y])
cv2.imshow(“使用hconcat的水平融合”,水平融合)
cv2.等待键(0)
注意:
如果图像没有相同的尺寸,您必须构建一个空矩阵并自己填充,就像前面的文章一样。在您的情况下,您可以将所有三个图像都放在参数中
newIMG = np.vstack((resizedLena, Y, X))
所有的图像必须是相同的大小有所有相同的大小为我工作,请显示所有的代码