错误:(-215:断言失败)_step >= minstep in function 'cv::Mat::Mat'
Posted
技术标签:
【中文标题】错误:(-215:断言失败)_step >= minstep in function \'cv::Mat::Mat\'【英文标题】: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 '
【问题讨论】:
【参考方案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) 已修改,谢谢。以上是关于错误:(-215:断言失败)_step >= minstep in function 'cv::Mat::Mat'的主要内容,如果未能解决你的问题,请参考以下文章
OpenCV 断言失败:(-215:断言失败)npoints >= 0 &&(深度 == CV_32F || 深度 == CV_32S)
OpenCV(4.5.2)/tmp/pip-req-build-sl2aelck/opencv/modules/imgproc/src/color.cpp:182:错误:(-215:断言失败)!_sr
错误:(-215:断言失败)!函数'cv :: CascadeClassifier :: detectMultiScale'中的empty()
如何解决函数'resize'中的错误(-215:断言失败)!ssize.empty()?
CV2 图像错误:错误:(-215:断言失败)!ssize.empty() in function 'cv::resize'