当像素值为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类型的像素值。
答案 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)