天天看點

圖像檔案壓縮參考

// GTImageCompress.cpp : 定義控制台應用程式的入口點。
//

#include "stdafx.h"
#include <iostream>


#include "opencv/cv.h"
#include "opencv2\opencv.hpp"

#if _DEBUG
#pragma comment(lib,"opencv_world349d.lib")
#else
#pragma comment(lib,"opencv_world349.lib")
#endif


int main()
{
    cv::Mat src = cv::imread("28002.bmp");

    if (src.data != NULL)
    {
        std::vector<int> compression_params;
        compression_params.push_back(CV_IMWRITE_JPEG_QUALITY);
        compression_params.push_back(10);     //圖像壓縮參數,該參數取值範圍為0-100,數值越高,圖像品質越高

        //bool bRet = imwrite("test2.jpg", src, compression_params);
        std::vector<uchar> vecResult;

        clock_t start, stop;//定義clock_t類型的start和end
        start = clock();
        bool bRet = imencode(".bmp", src, vecResult);
        stop = clock();
        printf("%f\n", (double)(stop - start) / CLOCKS_PER_SEC);
        if (bRet)
        {
            std::cout << "圖像儲存成功" << std::endl;
        }
        else
        {
            std::cout << "圖像儲存失敗" << std::endl;
        }
    }
    else
    {
        std::cout << "圖檔加載失敗,請檢查檔案是否存在!" << std::endl;
    }

    //cv::waitKey(0);
    getchar();

    return 0;
}

           

參考

  1. Opencv學習筆記(三) -- 圖像壓縮與儲存
c++

繼續閱讀