opencv学习日记——图像的保存

opencv学习日记——图像的保存

#include
#include

using namespace std;
using namespace cv;
//这部分用于自定义一张图片,给每个元素都上色
void AlphaMat(Mat &mat)
{
    for(int i = 0; i < mat.rows; ++i)
    {
        for(int j = 0; j < mat.cols; ++j)
        {
            Vec4b &bgra = mat.at<Vec4b>(i, j);
            //以下通道位BGRA 分别代表蓝色, 灰色, 红色, 透明度
            bgra[0] = UCHAR_MAX;
            bgra[1] = saturate_cast<uchar>((float(mat.cols - j)) / ((float)mat.cols) * UCHAR_MAX);
            bgra[2] = saturate_cast<uchar>((float(mat.rows - j)) / ((float)mat.rows) * UCHAR_MAX);
            bgra[3] = saturate_cast<uchar>(0.5 * (bgra[1] + bgra[2]));
        }
    }
}

int main(int agrc, char** agrv)
{
    //自定义一个矩阵
    Mat mat(480, 640, CV_8UC4);
    //调用以上的函数给矩阵上色
    AlphaMat(mat);
    //进行保存图片形式操作
    //常用的编码参数 
    //1 保存JPEG格式 等级0——100
    //2 增强JPRG格式 启用为1 默认为0
    //3 优化JPEG格式 启用为1 默认为0
    //5 亮度质量等级 等级0---100
    //6 色度质量等级 等级0---100
    //16 压缩       等级0----9
    //259 保存成TIFF格式文件压缩方案
    vector<int> compression_params;
    compression_params.push_back(1);//哪种方式处理图像
    compression_params.push_back(90);//等级
    //保存图片 分别是 保存后的图片的名字和格式  需要保存的图片  保存的方式
    bool result = imwrite("cat.jpeg", mat, compression_params);
    if(!result)
    {
        cout << "保存失败" << endl;
        return -1;
    }
    cout << "保存成功" << endl;
    return 0;
}

你可能感兴趣的:(opencv,opencv)