|
楼主 |
发表于 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 压缩通常会丢失一些图像细节,因此降低压缩质量可能会导致图像质量下降。 |
|