Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python np.hstack和np.vstack未运行_Python_Opencv_Opencv Python - Fatal编程技术网

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()
结果:

  • 1°图像是我的输出
  • 2°图像为
    img
  • 3°图像是
    Y
  • 4°图像为
    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))
    

    所有的图像必须是相同的大小有所有相同的大小为我工作,请显示所有的代码