我有这段代码可以在 opencv 中创建和编写图像:
char * outImage="C:/tmp/000014/outimage.jpg";
Mat gray_image(imageWidth,imageHeight, CV_8UC1, Scalar(255));
imwrite( outImage, gray_image );
但是当我运行这个代码时,我收到文件扩展名未知的错误,因此 iwrite 无法写入图像。
这段代码有什么问题?
编辑1
我更改了代码以查看代码或安装有问题。所以我现在有这个代码
Mat x=imread("C:/tmp/a.jpg");
imshow("Image", x);
waitKey(0);
我确定文件 c:/tmp/a.jpg 存在。
当我运行应用程序时,我收到此错误:
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in unknown function, file C:\slave\builds\WinInstallerMegaPack\src\opencv\modules\core\src\array.cpp, line 2482
C:\slave\builds\WinInstallerMegaPack\src\opencv\modules\core\src\array.cpp:2482: error: (-206) Unrecognized or unsupported array type
我按照这个答案在我的系统上安装 OpenCV(我在安装过程中使用 vc11,而不是 vc10)在 Visual C++ 2010 Express 中安装 OpenCV 2.4.3
编辑 2
问题是我混合了调试库和发布库,
对于发布,使用末尾没有 d 的发布库(例如 opencv_calib3d243.lib 而不是 od opencv_calib3d243d.lib)
对于调试,使用以 d 结尾的调试库,例如 opencv_calib3d243d.lib
确保根据您拥有的 opencv 版本使用正确的库名称,例如 opencv_calib3d245d.lib 用于 opencv 2.4.5。