几何尺寸与公差论坛

 找回密码
 注册
查看: 883|回复: 1

用opencv读取一张bmp图,然后保存成一张jpg

[复制链接]
发表于 2023-3-7 17:15:48 | 显示全部楼层 |阅读模式
写段c++代码用opencv读取一张bmp图,然后保存成一张jpg,有多张GPU显卡,要简洁高效,可以适当降低压缩质量以减小文件大小,从而减少保存时间
 楼主| 发表于 2023-3-7 17:16:06 | 显示全部楼层
以下是使用 OpenCV 在 C++ 中读取 BMP 图像并将其保存为 JPEG 图像的简单代码示例。还包括使用 OpenCV GPU 模块进行 JPEG 压缩的方法,以提高效率:

c++
Copy code
#include <opencv2/opencv.hpp>
#include <opencv2/gpu/gpu.hpp>

int main()
{
    // 读取 BMP 图像
    cv::Mat image = cv::imread("image.bmp", cv::IMREAD_UNCHANGED);

    // 初始化 JPEG 压缩参数
    std::vector<int> jpeg_params;
    jpeg_params.push_back(cv::IMWRITE_JPEG_QUALITY);
    jpeg_params.push_back(75);

    // 保存 JPEG 图像
    cv::gpu::GpuMat gpu_image(image);
    cv::imwrite("image.jpg", gpu_image, jpeg_params);

    return 0;
}
该代码使用 imread() 函数读取 BMP 图像,然后使用 imwrite() 函数将其保存为 JPEG 图像。我们还使用了 OpenCV 的 GPU 模块中的 GpuMat 类来将图像传递给 imwrite() 函数。此外,我们使用了 JPEG 压缩参数来指定压缩质量,并将 JPEG 图像保存为 image.jpg。

注意:由于 JPEG 压缩通常会丢失一些图像细节,因此降低压缩质量可能会导致图像质量下降。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|几何尺寸与公差论坛

GMT+8, 2024-12-22 01:28 , Processed in 0.037524 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表