什么时候imwrite()失败了

时间:2015-10-16 06:15:10

标签: c++ opencv

当像素值为CV_32FC1类型时,imwrite是否会失败。我试图在jpg文件中写一个图像,但这不起作用 - :

        make_response_mat(hr_lrt,response);

        if (!response.data)                              // Checks input
        {
            cout << "Could not open or find the image" << std::endl;
            return -1;
        }
        while (!imwrite("response.jpg", response))
        {
            cout << "Hari" << response.size() << "\n" << response.at<float>(456954, 4);
        }

这里的响应具有float类型的像素值。

1 个答案:

答案 0 :(得分:0)

在PNG,JPEG 2000和TIFF的情况下,只有8位(或16位无符号(CV_16U))单通道或3通道(具有&#39; BGR&#39;通道顺序)。您可以使用 Mat :: convertTo 转换图像数据类型。 例如 Mat res;
response.convertTo(res, CV_8UC*)
* refer to image channel(1, 2, 3)