一个非常简单的问题...为什么我的代码会出现读取访问冲突错误?
cv::Mat laserSpeckle = Mat::zeros(100,100,CV_8UC1);
imwrite( "C://testimage.jpg", laserSpeckle );
当我附加一个调试器并进一步查看它时,它会在grfmt.cpp中的这个片段中抛出异常。
if( params[i] == CV_IMWRITE_JPEG_QUALITY )
{
quality = params[i+1];
quality = MIN(MAX(quality, 0), 100);
}
它也出现.png和.tiff。我是一个OpenCV新手,如果这很简单,我很抱歉。我正在使用Qt的价值。
答案 0 :(得分:2)
你自己构建OpenCV吗?如果是,请确保在配置构建文件时启用了选项WITH_JPEG
:
cmake ... -DWITH_JPEG=ON ...
答案 1 :(得分:0)
它应该与bmp格式一起使用:
cv::Mat laserSpeckle = cv::Mat::zeros(100,100,CV_8UC1);
cv::imwrite( "C://testimage.bmp", laserSpeckle );
答案 2 :(得分:0)
如果要使用Alpha通道保存图像,则应使用png格式。它被描述为here
答案 3 :(得分:0)
如果您使用发布 <构建代码,问题出在调试器 版本 (x64) strong>版本 (x64)它适用于我。
答案 4 :(得分:0)
在我的情况下,c ++代码生成设置错误 应该是多线程DEBUG dll MD