python - 由于一维尺寸更好,程序会吐出轴错误,是因为我最终混合了吗?

标签 python numpy opencv

我编写了一个程序,但是没有用,稍后再详细介绍。
错误

  File "computer path", line 40, in <module>
    mix=np.concatenate((mix_ver, mix_hoz), axis=0)
  File "<__array_function__ internals>", line 5, in concatenate
ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 128 and the array at index 1 has size 1024
我的代码

# Import libs
import cv2
import numpy as np

# Final block size
blockSize = (128, 128)

# Air
air_small = cv2.imread('air.png', 1)
air = cv2.resize(air_small, blockSize)

# Dirt
dirt_small = cv2.imread('dirt.png', 1)
dirt = cv2.resize(dirt_small, blockSize)

# Grass
grass_small = cv2.imread('grass.png', 1)
grass = cv2.resize(grass_small, blockSize)

# Make mix ver
mix_ver=np.concatenate((grass, dirt),axis=0)
for m in range(2):
    mix_ver=np.concatenate((air, mix_ver),axis=0)

for m in range(4):
    mix_ver=np.concatenate((mix_ver, dirt), axis=0)

# Make mix hoz
    
mix_hoz=np.concatenate((grass, dirt),axis=1)
for m in range(2):
    mix_hoz=np.concatenate((air, mix_hoz),axis=1)

for m in range(4):
    mix_hoz=np.concatenate((mix_hoz, dirt), axis=1)

# Final Mix
mix=np.concatenate((mix_ver, mix_hoz), axis=0)

# Show output    
cv2.imshow('final', mix)
我认为
据我所知,最后导致问题的部分使它在x轴上大了一倍,但在Y轴上却大。
它是否正确?
注释
  • 为什么要调整大小?我正在调整大小,因为我的图像是64x64。
  • 为什么要串联?我想将它们加在一起,以便制作2D区域。
  • 最佳答案

    您在此处创建的图像:

    # Make mix ver
    mix_ver=np.concatenate((grass, dirt),axis=0)
    for m in range(2):
        mix_ver=np.concatenate((air, mix_ver),axis=0)
    
    for m in range(4):
        mix_ver=np.concatenate((mix_ver, dirt), axis=0
    
    沿垂直轴(行)连接,因此它变成了这样的形状:
    |_|
    |_|
    |_|
    ...
    
    而第二个创建的图像沿水平维度(列)是concatenadet,看起来像这样:
    |_|_|_|...
    
    在引发错误的行中,您试图将它们连接为一个图像,这是不可能的(您可以想象)。您需要让我们知道您要实现的目标(最终图像希望具有什么形状)。

    另一点注意:您将grassdirt一次连接在一起,但是随后又添加了2倍的air和4倍的dirt,我不确定这是否是理想的结果。

    关于python - 由于一维尺寸更好,程序会吐出轴错误,是因为我最终混合了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63229447/

    相关文章:

    opencv - 如何在 ubuntu 11.10 中安装 opencv?

    javascript - 使用 Scrapy Xpath 从脚本标签获取数据并将其用作 CSV

    Python 多处理和管理器

    python - Bruce Eckel 设计模式 : I'm confused on how it works 中的代码片段

    python - python中是否有不小于或不大于的操作?

    python - python opencv示例中 Unresolved 导入

    python - 从 Thonny : ModuleNotFoundError 导入 numpy

    python - tensorflow - 我的输入数组中可以有元组条目吗?这样做会抛出 'Unable to get element from the feed as bytes.'

    python - 按名称和索引排列的 Numpy 结构化数组

    python - 查找法线图像和透视图像之间的角度