【问题标题】:error: (-215:Assertion failed) _step >= minstep in function 'cv::Mat::Mat'错误:(-215:断言失败)_step >= minstep in function 'cv::Mat::Mat'
【发布时间】:2021-04-20 10:43:50
【问题描述】:

当我在 python 中使用 opencv 时,如下所示:

LST_Day_1km = j.select('LST_Day_1km')[:]
if np.max(LST_Day_1km) != np.min(LST_Day_1km):
    d=np.array([LST_Day_1km,LST_Day_1km,LST_Day_1km])
    cv2.imwrite(savePath + i[:-4] + '.LST_Day_1km.tif', d)

LST_Day_1km 有多个零,其形状为 (1200,1200) 我能做些什么 ????!!! 这是错误: imwrite_('E:/pyCharm/ESRGAN/hdf_h5_datasPro/jpgGray/MOD11A1.A2000056.h23v04.061.2020043120949.LST_Day_1km.tif'):无法写入数据:OpenCV(4.5.1) C:\Users\appveyor\AppData\Local \Temp\1\pip-req-build-kh7iq4w7\opencv\modules\core\src\matrix.cpp:466: 错误:(-215:断言失败)_step >= minstep in function 'cv::Mat::Mat '

【问题讨论】:

    标签: python opencv


    【解决方案1】:

    您可以使用:d = np.dstack((LST_Day_1km, LST_Day_1km, LST_Day_1km)),而不是 d = np.array([LST_Day_1km, LST_Day_1km, LST_Day_1km])

    以下代码重现了错误:

    import numpy as np
    import cv2
    
    LST_Day_1km = np.zeros((1200, 1200), np.uint8)  # 1200x1200 zeros (used for testing).
    d = np.array([LST_Day_1km, LST_Day_1km, LST_Day_1km])
    print(d.shape)  # d.shape = (3, 1200, 1200)
    cv2.imwrite('LST_Day_1km.tif', d)
    

    d.shape(3, 1200, 1200)
    该形状未应用有效的 OpenCV 图像。

    BGR 格式的有效 OpenCV 图像的形状是 (1200, 1200, 3)
    这是 1200 行 × 1200 列 × 3 个颜色通道(最后是 3 个)。


    以下代码有效:

    LST_Day_1km = np.zeros((1200, 1200), np.uint8)
    d = np.dstack((LST_Day_1km, LST_Day_1km, LST_Day_1km))
    print(d.shape)  # d.shape = (1200, 1200, 3)
    cv2.imwrite('LST_Day_1km.tif', d)
    

    您也可以使用 OpenCV 将 LST_Day_1km 从灰度转换为 BGR:

    d = cv2.cvtColor(LST_Day_1km, cv2.COLOR_GRAY2BGR)  # Same result as `np.dstack`.
    

    您也可以将LST_Day_1km 保存为灰度。
    这是您修改后的代码 - 将 LST_Day_1km 保存为灰度:

    LST_Day_1km = j.select('LST_Day_1km')[:]
    if np.max(LST_Day_1km) != np.min(LST_Day_1km):
        cv2.imwrite(savePath + i[:-4] + '.LST_Day_1km.tif', LST_Day_1km)
    

    【讨论】:

    • 请修改。您的帖子说“代替 X 使用 X”(相同的 X)
    • 已修改,谢谢。
    猜你喜欢
    • 2023-03-23
    • 2020-08-21
    • 2020-12-13
    • 2020-10-23
    • 2022-01-10
    • 1970-01-01
    • 2020-02-03
    • 2016-08-04
    相关资源
    最近更新 更多