天天看点

图像文件压缩参考

// 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++

继续阅读