cv :: imwrite找不到指定扩展名的编写器

Pie*_*ter 25 opencv

以下命令会导致异常.

cv::imwrite("test.jpg", diffImg);
Run Code Online (Sandbox Code Playgroud)

我也尝试了很多变化,包括绝对路径和PNG导出.这是错误:

异常在0x75abd36f,代码:0xe06d7363:C++异常,标志= 0x1(执行无法继续)在opencv_core231!cv :: error

C:\ slave\WinInstallerMegaPack\src\opencv\modules\highgui\src\loadsave.cpp:276:错误:( - 2)找不到指定扩展名的编写器

根据这个相关的线程,我当前的OpenCV安装不支持我尝试的图像格式.但我只是像他们网站建议的那样下载了预编译的Windows框架.

如何让JPG导出工作?

NIr*_*odi 45

我也遇到过这个问题,我观察到当我使用没有任何扩展名的图像时会出现这个问题.喜欢abc.jpg,但我将其重命名abc而已.

  • 谢谢固定的东西! (3认同)
  • 为什么这不是公认的答案? (3认同)
  • 我希望 opencv 的错误不会强制给出这样的答案 (3认同)
  • 我犯了一个多么愚蠢的错误...非常感谢这个答案 (2认同)

Sha*_*lik 12

只需提及您要保存图像的格式,例如image.jpg,image.jpeg

cv2.imwrite('image.jpg',image)
Run Code Online (Sandbox Code Playgroud)


dan*_*z22 9

听起来好像您使用的是与您正在编译的环境不同的执行环境.你能试试以下吗?下载依赖性walker并转到可执行文件目录,然后将.exe文件拖放到依赖walker(http://www.dependencywalker.com/)上.它将显示它正在使用的运行时库.现在,确保您使用适当的环境调用该程序.如果可以,使用命令行界面来调用程序,它会让您感觉更安全,知道调用代码的位置,因此您可以确保调用复制的.dll.

亲切的问候,丹尼尔