1.创建滑动条
int creatTrackbar(conststring& trackbarname, conststrint& winname,
int* value, int count, TrackbarCallback onChange=0, void* userdata=0);
含义:trackbarname 为轨迹条名,winname 为窗口名,value 为滑块初始位置,count 为滑块最大位置(最小位置为0),onChange 为指向回调函数的指针,回调函数原型为 void XXX(int, void*),前者是轨迹条位置,后者为用户数据,userdata 为用户传给回调函数的数据,用来处理轨迹条事。
获取当前轨迹条位置:
int getTrackbarPos(conststring& trackbarname, conststring& winname);
2.鼠标操作
void setMouseCallBack(conststring& winname, MouseCallback onMouse, void* userdata=0)
含义:winname窗口名,onMouse 鼠标事件发生时调用的函数指针,原型大概为 void Foo(int event, int x, int y, int flags, void* param),其中 event 是 EVENT_+ 变量之一,x 和 y 是鼠标指针再图像的坐标系,flags 是 EVENT_FLAG 的组合,param是用户传递给 SetMouseCallback 函数调用的参数,如EVENT_MOUSEMOVE 为鼠标移动等
3.图像线性混合:
void addWeighted(InputArray src1, double alpha, InputArray src2, double beta,
double gamma, OutputArray dst, int dtype=-1)
含义: dst = src1[I] * alpha + src2[I] * beta + gamma
4.通道分离
void split(const Mat& src, Mat*mvbegin);
void split(InputArray m, OutputArrayOfArrays mv);
含义:src 和 m 是进行分离的多通道数组, mvbegin 和 mv 函数的输出数组或vector函数。
5.通道合并
void merge(const Mat* mv, size_tcount, OutputArray dst);
void merge(InputArrayOfArrays mv, OutputArray dst)
含义:mv 是输入的需要被合并的输入矩阵或容器 vector 的阵列,count 为 mv 为空数组时输入矩阵的个数,dst 为输出矩阵。
6.离散傅里叶变换
void dft(InputArray src, OutputArray dst, int flags=0, int nonzerosRows=0)
含义:src 为输入矩阵,dst 为输出结果,flags 为转换标识符,默认为0,nonezerosRows 默认值为0,为非0时,函数会假设只有输入矩阵的第一个非零行包含非零元素,或只输出矩阵的第一个非零行包含非零元素。
相关函数:
(1) 返回DFT最有尺寸大小
int getOptimalDFTSize(int vecsize)
vecsize 为向量尺寸,即图片的rows、cols。
(2) 扩充图像边界
void copyMakeBorder(InputArray src, OutputArray dst, int top, int bottom, int left, int right, int borderType, const Scalar& value=Scalar())
src 为输入图像,dst 为扩展后图像,尺寸为 (src.cols+left+right, src.rows+top+bootom),之后4个为拓展的像素,boderType 为边界类型,常取值为BODER_CONSTANT,最后一个可理解为默认值为0。
(3) 计算二维矢量
void magnitude(InputArray x, InputArray y, OutputArray magnitude)
(4) 矩阵归一化
void normalize(InputArray src, OutputArray dst, double alpha=1, double beta=0,
int norm_type=NORM_L2, int type=-1, InputArray mask=noArray())
alpha 为归一化后最大值,默认为1,beta 归一化后最小值,默认为0,norm_type 归一化类型,dtype 默认值为-1,此时 dst 和 src 有同样类型,mask 可选的操作掩膜,默认值noArray()。