OpenCV 图像文件读写(2)检查 OpenCV 是否支持某种图像格式写函数 haveImageWriter 的使用示例代码
最编程
2024-09-29 21:33:14
...
#include <iostream>
#include <opencv2/opencv.hpp>
int main()
{
// 读取图像
cv::Mat img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/fruit_small.jpg" );
if ( img.empty() )
{
std::cout << "Could not open or find the image!" << std::endl;
return -1;
}
// 检查是否支持写入特定格式的图像文件
std::string outputFilename = "output_image.png";
if ( cv::haveImageWriter( outputFilename ) )
{
std::cout << "Supports writing image: " << outputFilename << std::endl;
// 写入图像
std::vector< int > params;
params.push_back( cv::IMWRITE_PNG_COMPRESSION ); // 设置 PNG 压缩级别
params.push_back( 9 ); // 压缩级别为 9
bool success = cv::imwrite( outputFilename, img, params );
if ( success )
{
std::cout << "Image has been written successfully." << std::endl;
}
else
{
std::cout << "Failed to write the image." << std::endl;
}
}
else
{
std::cout << "Does not support writing image: " << outputFilename << std::endl;
}
// 显示图像
cv::imshow( "Original Image", img );
cv::waitKey( 0 );
return 0;
}