2019年3月9日
- 指针地址向后走
int a[5] ={1,100,200,300}
 int *p=a
 –>*p==1
 –>*p++100 指针移动
 –> p0x00000000 内存地址
int a=1
 int *p=&a 指针赋值常量,需要加寻址符号
 –>*p==1
 –>*p++
CV_8UC1,CV_8UC2,CV_8UC3。
 (最后的1、2、3表示通道数,譬如RGB3通道就用CV_8UC3)
3.InputArray类型的src,输入图像,即源图像,填Mat类的对象即可。
2019年11月19日11:12:26
 1.用normalize可以归一化图像,在光照有梯度的时候,可以指定一定范围来归一化,使得本来有梯度的图像像素值都归类同一个像素值。
 equalHist直方图均衡化无法消除光照影响。
 2.领域生长法
 3.在opencv中,坐标的原点在左上角,与x轴平行的方向为角度为0,逆时针旋转角度为负,顺时针旋转角度为正。
数据类型
 CV_(S|U|F)C
 S = 符号整型
 U = 无符号整型
 F = 浮点型
 C:代表一张图片的通道数,比如:
 1–灰度图片–grayImg 单通道图像
 2–RGB彩色图像 3通道图像
 3–带Alph通道的RGB图像 4通道图像
 CV_8UC1 是指一个8位无符号整型单通道矩阵,
 CV_32FC2是指一个32位浮点型双通道矩阵
cv::Mat是一个类(Class),而CvMat是一个Struct
CvMat结构体中比较常用的成员
 1.宽度(width)
 2.高度(height)
 3.行长度(step,单位为字节)
 4.指向图像块的数据指针(data)。
cv::Mat中提供ptr函数访问任意一行像素的首地址
用指针遍历
 int nl = image.rows; //行数
 int nc = image.cols * image.channels();
 for (int j = 0; j<nl; j++)
 {
 uchar* data = image.ptr(j);
 for (int i = 0; i<nc; i++)
 {
 data[i] = data[i] / div*div + div / 2;
 }
 }
CV_32F 用 Mat.at(y,x)