Table of Contents
线性变换公式
dstImage = alpha * srcImage + beta【类比于数学中的y = ax + b】
C++代码
#include <opencv2/opencv.hpp> //头文件
#include <iostream>
using namespace cv; //包含cv命名空间
using namespace std;
int main(int argc, char ** argv)
{
Mat srcImage, dstImage;
//【1】线性变换实验
srcImage = (Mat_<uchar>(2, 2) << 0, 200, 23, 4); //创建一个2*2的数组,类型为unsigned char
//输出数组内容
cout << "src: " << endl;
for (int r = 0; r < srcImage.rows; r++)
{
for (int c = 0; c < srcImage.cols; c++){
cout << (int)srcImage.at<uchar>(r, c) << ","; //第r行c列的值
}
cout << endl;
}
//设定变量
float alpha = 2.0;
float beta = 0;
//线性变换,如下三个方法都可行,任选一个
//OpenCV对大于255的数字采取的策略是全部设定为255,即400->255, 300->255, 510->255
//method#1:
//convertTo这个函数的会对结果进行类型转换,将其转为第二个参数所指定的类型
//s