您好,登錄后才能下訂單哦!
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。