OpenCV图像文件读写(2) 检查 OpenCV 是否支持某种图像格式的写入功能函数haveImageWriter()的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

haveImageWriter 函数用于检查 OpenCV 是否支持某种图像格式的写入功能。这个函数可以帮助开发者在编写代码时确定是否可以成功地将图像写入特定格式的文件中。

函数原型

cpp 复制代码
bool cv::haveImageWriter
(
	const String & 	filename
)	

参数

  • 参数filename:要检查的图像文件的路径。

返回值

如果支持写入该格式的图像文件,返回 true;否则返回 false。

代码示例

cpp 复制代码
#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;
}

运行结果

终端:

bash 复制代码
Supports writing image: output_image.png
Image has been written successfully.

原始图:

相关推荐
Code_Artist5 小时前
AI 终于学会写正确的汉字了?GPT Image 2.0 到底做对了什么?
人工智能·chatgpt·openai
程序员cxuan5 小时前
玩了一天 REA,我号快没了
人工智能·后端·程序员
阿里云大数据AI技术5 小时前
聚数成湖,以智驭行:卓驭如何构建移动物理 AI 的数据底座
人工智能·spark
武子康6 小时前
150毫秒和2400毫秒:同一 Agent 任务的两种延迟
人工智能·后端·agent
暖心hebbie设计学习6 小时前
GitHub 热榜周报(10.19)|5 个把 AI 装回本地的开源项目:多 agent 控制台、本地语音、节点式生成(含技术看点)
人工智能·github
猪脚踏浪6 小时前
open webui 在docker容器里跑,并且是在内网断绝互联网的环境下。生成ppt
人工智能
海边捡石子6 小时前
FreeSWITCH 入门:把电话系统接入语音客服机器人
人工智能·后端
桃西西呀7 小时前
我把网关限流配置成每秒 100 请求,大促一来照样被打挂,还把别人也拖垮了
人工智能·llm·ai编程
武子康7 小时前
Agent 偏好记忆怎样确认写入:范围、版本与撤销的一个最小例
人工智能·后端·agent
王中阳Go7 小时前
质保期第 90 天我翻了一遍日志目录:交付后真正会坏的 3 处
人工智能·后端·agent