OpenCV(开源计算机视觉库)是一个用于处理图像和视频的开源库
首先,确保已经安装了OpenCV库。在Ubuntu系统上,可以使用以下命令安装:
sudo apt-get install libopencv-dev
接下来,我们将创建一个C++程序来实现图像压缩和解压。
#include<iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
void compressImage(const cv::Mat &inputImage, cv::Mat &outputImage, int quality) {
std::vector<int> compression_params;
compression_params.push_back(cv::IMWRITE_JPEG_QUALITY);
compression_params.push_back(quality);
cv::imencode(".jpg", inputImage, outputImage, compression_params);
}
这个函数接受输入图像、输出图像和压缩质量作为参数。压缩质量是一个介于0到100之间的整数,其中100表示最高质量。
void decompressImage(const cv::Mat &inputImage, cv::Mat &outputImage) {
outputImage = cv::imdecode(inputImage, cv::IMREAD_COLOR);
}
这个函数接受输入图像和输出图像作为参数。它使用cv::imdecode
函数将压缩后的图像解压回原始格式。
int main() {
// 读取输入图像
cv::Mat inputImage = cv::imread("input.jpg");
// 压缩图像
cv::Mat compressedImage;
compressImage(inputImage, compressedImage, 50);
// 解压图像
cv::Mat decompressedImage;
decompressImage(compressedImage, decompressedImage);
// 显示原始图像和解压后的图像
cv::imshow("Original Image", inputImage);
cv::imshow("Decompressed Image", decompressedImage);
// 等待按键,然后退出
cv::waitKey(0);
return 0;
}
这个程序首先读取名为"input.jpg"的输入图像,然后调用compressImage
函数将其压缩为JPEG格式。接下来,它调用decompressImage
函数将压缩后的图像解压回原始格式。最后,它显示原始图像和解压后的图像,并等待用户按键。
注意:这个示例仅适用于JPEG格式的图像。如果要处理其他格式的图像,需要相应地修改compressImage
和decompressImage
函数。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。