最初用opencv的cvNorm函数,发现结果错的一塌糊涂! 多方查找没有cvNorm太多的介绍,后来仔细查阅,从cvNorm等价于Matlab的norm函数出发寻找线索,而显然matlab里norm函数不同与diff函数,无奈自己封装吧。
CvMat* DiffMat(CvMat *B) //求向量B的一阶差分 功能等价matlab里的diff
{
int cols = B->cols;
CvMat*Out = cvCreateMat(1, cols-1, B->type);
const float*pB = (const float*)(B->data.ptr);
float*pOut = ( float*)(Out->data.ptr);
for(int i=0; i<cols; i++)
{
*pOut = *(pB+1)-*pB;
pB++;
pOut++;
}
return Out;
}
注意:1,输入B是个向量,且为行向量
2,返回的是一个CvMat
3,数据类型默认的是float,在申请指针时用到了。
调用示例如下:
CvMat *diffMat = cvCreateMat(1,InMat->cols-1, InMat->type);
diffMat = DiffMat(InMat);
另附,打印一个CvMat数据的函数封装,调用该函数可以方便查看矩阵中的元素。
void PrintMat(CvMat* A)
{
int i,j;
//printf("/nMatrix = :");
for(i=0;i<A->rows;i++) //行
{
printf("/n");
switch( CV_MAT_DEPTH(A->type) )
{
case CV_32F:
case CV_64F:
for(j=0;j<A->cols;j++) //列
//获取2维数组的元素
printf("%9.3f ", (float) cvGetReal2D( A, i, j ));
break;
case CV_8U:
case CV_16U:
for(j=0;j<A->cols;j++)
printf("%6d",(int)cvGetReal2D( A, i, j ));
break;
default:
break;
}
}
printf("/n");
}
分享到:
相关推荐
OpenCv 背景差分--将背景差分成功封装成一个函数,借助高斯平滑等去噪
解决办法:在配置了opencv的电脑上(但是在环境变量中没有添加dll的路径),将调用相关函数的代码封装成函数,生成dll文件,拷贝到其他没配置opencv的电脑上,再解析该dll,将该dll中调用的一些opencv的函数涉及到的...
opencv实现对任意图片的边缘检测并绘制出边缘图像
光流法、帧间差分法、高斯背景模型差分法opencv下实现运动目标检测.zip资源matlab opencv运动目标检测程序资料光流法、帧间差分法、高斯背景模型差分法opencv下实现运动目标检测.zip资源matlab opencv运动目标检测...
这个代码就是基于opencv实现Matlab函数的 cv::Mat imhmax(cv::Mat im, double thresh); cv::Mat imhmin(cv::Mat im, double thresh); cv::Mat imreconstruct(cv::Mat marker, cv::Mat mask); cv::Mat ...
cvlib_mex 供windows64位matlab使用的,已经封装了openCV重要函数的库。matlab可直接调用cvlib_mex.mexw64文件。
移植了self_findcontours函数,在zynq 7000系统上1080p的图像检测速度为1s。
基于opencv实现的帧间差分算法 可以实现两幅图像之间的做差运算
OpenCV2.4.9的基于背景差分法的视频目标运动侦测的代码,相应位置有具体的注释,具体分析见博客http://blog.csdn.net/primetong/article/details/79609993
在openCv下画出正弦函数图像 很简单的入门级opencv学习
利用OpenCV中背景差分的函数,进行背景差分法构建,可以很好的进行运动目标检测。从pudn上下的
opencv图像处理中常用函数汇总,包括显示图像,保存图像,图像灰度化,边缘检测等函数使用方式
OPENCV函数中文手册
OSTU算法实现背景差分的自适应分割算法,有完整的代码和论文(opencv).zip资源matlab opencv运动目标检测程OSTU算法实现背景差分的自适应分割算法,有完整的代码和论文(opencv).zip资源matlab opencv运动目标检测程OSTU...
OPENCV和MATLAB混合编程的接口工具mxopencv的常用函数.pdfOPENCV和MATLAB混合编程的接口工具mxopencv的常用函数.pdfOPENCV和MATLAB混合编程的接口工具mxopencv的常用函数.pdfOPENCV和MATLAB混合编程的接口工具...
C++ OpenCV驱动程序,OpenCV beta工程环境。 项目代码可直接编译运行~
基于opencv的图像旋转,功能类似matlab的imrotate函数
这是opencv的函数文档,pdf格式。方便大家查阅相关函数。
时间差分法(帧间差分法)opencv和vc代码实现,已经测试过,可以实现!
1. 基于python的opencv4.6.5内部函数库 2. opencv中所有函数的个人实际使用以及相关功能描述 3. 注释相对简单,具体描述需自己学习 4. 不了解的函数或者不懂的注释可以csdn中查找更详细的用法