【问题标题】:Why I get error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:376: error:为什么我收到错误:OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:376: 错误:
【发布时间】:2020-09-29 16:50:14
【问题描述】:

我想从目录中读取一个简单的图像,我正在使用带有简单 2 行的 openCV(4.2.0):

im = cv2.imread('C:\\Users\khand\OneDrive\Desktop\Thesis\Case_db\or\case_9-14000-12000-16000-14000-1-100-S') cv2.imshow('im',im)

我怎么会得到这样的错误:

错误:OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:376: error: (-215:Assertion failed) size.width>0 && size .height>0 在函数'cv::imshow'中

我可以使用 PIL 库读取文件图像,这意味着图像是正确且可读的。我需要使用 cv::findContours(), 这就是为什么我需要在 opencv 中打开它们。如果有人有任何解决方案,请随时提供帮助。 先谢谢了!!!

【问题讨论】:

  • 您能否检查您提到的从系统加载图像的路径
  • 我使用相同的路径使用 PIL.Image.open() 加载图像,这就是为什么我认为路径不应该是问题,但请再次检查
  • 你还能检查正在加载的 im 数组的形状吗
  • 我检查了路径,imread() 正在工作,形状为 200 200,但在 imshow() 行中仍然存在同样的问题
  • 尝试在提供给 imread 的路径中使用 '.jpg' 或 '.png' 之类的扩展名

标签: python opencv image-processing


【解决方案1】:

试试

im = cv2.imread('C:/Users/khand/OneDrive/Desktop/Thesis/Case_db/or/case_9-14000-12000-16000-14000-1-100-S')

并指定文件扩展名,同时确保该文件没有被其他进程使用。

【讨论】:

  • 是的,我这样解决了 im = cv2.imread('C:/Users/khand/OneDrive/Desktop/Thesis/Case_db/or/case_9-14000-12000-16000-14000-1- 100-S.jpg')
【解决方案2】:

从文件加载图像。

函数imread 从指定文件加载图像并返回。如果无法读取图像(由于缺少文件、权限不当、格式不支持或无效),该函数将返回一个空矩阵( Mat::data==NULL )。

目前支持以下文件格式:

Windows 位图 - *.bmp、*.dib(始终支持)
JPEG 文件 - *.jpeg、*.jpg、*.jpe(参见注释部分)
JPEG 2000 文件 - *.jp2(参见注释部分)
便携式网络图形 - *.png(参见注释部分)
WebP - *.webp(见注释部分)
便携式图像格式 - *.pbm、*.pgm、*.ppm *.pxm、*.pnm(始终支持)
PFM 文件 - *.pfm(参见注释部分)
太阳栅格 - *.sr、*.ras(始终支持)
TIFF 文件 - *.tiff、*.tif(参见注释部分)
OpenEXR 图像文件 - *.exr(参见注释部分)
Radiance HDR - *.hdr、*.pic(始终支持)
GDAL 支持的栅格和矢量地理空间数据(见注释部分)

尝试 PIL 或 medpy

from medpy.io import load

image_data,image_header = load(path)

或 您也可以尝试使用 pickle 库来加载或读取数据

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2020-08-27
    • 2016-08-10
    相关资源
    最近更新 更多