【问题标题】:How do I display vertical 2 images with different resolution?如何显示具有不同分辨率的垂直 2 图像?
【发布时间】:2020-04-28 15:30:21
【问题描述】:

我试过了:

import cv2
import numpy as np
import matplotlib.pyplot as plt

top=cv2.imread('top.jpg')

https://imgur.com/KHwU6z0

bottom=cv2.imread('bottom.jpg')

https://imgur.com/eO04Nj2

numpy_vertical= np.vstack((top, bottom))


cv2.imshow('detected', numpy_vertical)
cv2.imwrite('detected.jpg', numpy_vertical)

ValueError:连接轴的所有输入数组维度必须完全匹配,但沿维度 1,索引 0 处的数组大小为 2878,索引 1 处的数组大小为 5760

【问题讨论】:

  • 要不要在同一张图片上叠加两张不同分辨率的图片。
  • 是的,有没有可能?
  • 好吧,您可以将窄的调整为与宽的宽度相同的宽度。或者将宽的调整为与窄的相同的宽度。或者用黑色、绿色、蓝色或任何其他颜色的像素在左边或右边或两者上填充较窄的像素,以使其宽度与较宽的像素相匹配。

标签: python opencv imshow


【解决方案1】:

例如,我拍摄了以下图片:

第一张图片:

第二张图片:

输出图像

使用以下代码:

import cv2
import numpy as np

first = cv2.imread(r"path.... \first.png")
second = cv2.imread(r"path.... \second.png")

h1, w1, c1 = first.shape

h2, w2, c2 = second.shape

h, w= h1+h2, max(w1, w2)

out_image = np.zeros((h,w,c1))

out_image[:h1,:w1, ] = first

out_image[h1:h1+h2,:w2, ] = second

cv2.imwrite(r"path ......out.png", out_image)

【讨论】:

    【解决方案2】:

    如果你只是想可视化图像,也可以使用 matplotlib 中的子图

    import matplotlib.pyplot as plt
    
    first = cv2.imread(r"path.... \first.png")
    second = cv2.imread(r"path.... \second.png")
    
    plt.figure()
    plt.subplot(121)
    plt.imshow(first)
    plt.subplot(122)
    plt.imshow(second)
    plt.show()
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 2015-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多