gpt4 book ai didi

c++ - imwrite 不创建图像

转载 作者:行者123 更新时间:2023-11-27 23:04:21 25 4
gpt4 key购买 nike

#include <opencv/cv.h>
#include <opencv/highgui.h>

using namespace cv;

int main( int argc, char** argv )
{
const char* imageName = "samp.png";

Mat image;
image = imread( imageName, 1 );


Mat gray_image;
cvtColor( image, gray_image, CV_BGR2GRAY );

imwrite( "/home/Downloads/Pictures/Gray_Image.jpg",gray_image );



namedWindow( imageName, CV_WINDOW_AUTOSIZE );
namedWindow( "Gray image", CV_WINDOW_AUTOSIZE );



imshow( imageName, image );
imshow( "Gray image", gray_image );

waitKey(0);

return 0;
}

上面代码中的“imwrite”不创建图像。其他一切正常,我可以使用 imshow 看到图像。但我不知道为什么它不创建图像。我试过“convertTo”并替换“/' 到路径中的 '\',但它不起作用。如果我能得到任何线索,我将很高兴。谢谢!

最佳答案

这没有清楚地记录下来,但是 imwrite 返回一个 bool 值,当且仅当它认为它可以成功写入文件时才为 true。您应该检查该值!

您可能会发现 imwrite 返回 false。很可能您没有足够的权限,或者——正如 berak 指出的那样——您的文件路径无效。

顺便说一句,为了正确处理错误,您还应该捕获异常,特别是在用户提供输出文件 URL 的情况下。如果 OpenCV 由于某种原因找不到合适的编码器(即它无法识别您要编写的文件类型),它会抛出异常。

关于c++ - imwrite 不创建图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24624995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com