Opencv中没有提供对矩阵进行操作的三角函数,我封装了三个,其他三角函数可以仿照此进行封装。
头文件中要包含
#include <cmath>
CvMat* cvAtan2Mat(CvMat *a, CvMat *b)
{
int rows = a->rows;
int cols = a->cols;
CvMat *out = cvCreateMat(rows, cols, a->type);
for(int i=0; i<rows; i++)
{
float* ptra = ( float*)(a->data.ptr+i*a->step);
float* ptrb = ( float*)(b->data.ptr+i*b->step);
float* ptrout = ( float*)(out->data.ptr+i*out->step);
for(int j=0; j<cols; j++)
{
*ptrout = atan2(*ptra,*ptrb);
ptra++;
ptrb++;
ptrout++;
}
}
return out;
}
CvMat* cvSinMat(CvMat *a)
{
int rows = a->rows;
int cols = a->cols;
CvMat *out = cvCreateMat(rows, cols, a->type);
for(int i=0; i<rows; i++)
{
float* ptra = ( float*)(a->data.ptr+i*a->step);
float* ptrout = ( float*)(out->data.ptr+i*out->step);
for(int j=0; j<cols; j++)
{
*ptrout = sin(*ptra);
ptra++;
ptrout++;
}
}
return out;
}
CvMat* cvCosMat(CvMat *a)
{
int rows = a->rows;
int cols = a->cols;
CvMat *out = cvCreateMat(rows, cols, a->type);
for(int i=0; i<rows; i++)
{
float* ptra = ( float*)(a->data.ptr+i*a->step);
float* ptrout = ( float*)(out->data.ptr+i*out->step);
for(int j=0; j<cols; j++)
{
*ptrout = cos(*ptra);
ptra++;
ptrout++;
}
}
return out;
}
分享到:
相关推荐
OPENCV_Mat类存取方法
解决办法:在配置了opencv的电脑上(但是在环境变量中没有添加dll的路径),将调用相关函数的代码封装成函数,生成dll文件,拷贝到其他没配置opencv的电脑上,再解析该dll,将该dll中调用的一些opencv的函数涉及到的...
这个是我自己写的Openv中人脸识别类FaceRecognizer,我把进行了封装,从训练到显示,代码简单到只有几行。
封装在Opencv的Mat图像中绘制中文文字功能!解决Opencv中默认绘制中文字体出现乱码的情况!
刚学OPENCV时用来练习的一段小代码,刚进入OPENCV的可以参考下
基于opencv的图像旋转,功能类似matlab的imrotate函数
这个是关于OpenCV中Mat类的一些数学运算,包括加减运算,点乘,点除,矩阵乘法,还有幂函数指数函数等计算以及一些区域的选取。
本代码是一张有很多噪声的三角形图片,利用opencv编写的程序,实现了该三角形的边长长度测量,三角形底边上的高的测量,面积的测量等等。。。采用的是Hough变换,还有角点检测等,效果很好
此系统可以从视频中实时监测三角形,使用了opencv库,方便使用
基于opencv的图像增强函数,Demo用vc6.0实现。 如果您对安装opencv或在vc6.0下配置opencv有疑问,请访问opencv中文网站: http://www.opencv.org.cn/
Opencv中imwrite函数源代码,Opencv中imwrite函数源代码,Opencv中imwrite函数源代码
这是一个基于opencv的图像轮廓提取程序,可以识别轮廓边沿,是初级学者的参考代码
计算机视觉项目,基于opencv训练好的分类器和函数进行人脸检测和笑脸检测_2 计算机视觉项目,基于opencv训练好的分类器和函数进行人脸检测和笑脸检测_2 计算机视觉项目,基于opencv训练好的分类器和函数进行人脸检测...
基于MATLAB OpenCv的人脸识别系统源码基于MATLAB OpenCv的人脸识别系统源码基于MATLAB OpenCv的人脸识别系统源码基于MATLAB OpenCv的人脸识别系统源码基于MATLAB OpenCv的人脸识别系统源码基于MATLAB OpenCv的人脸...
基于estimateTransformation类进行的图片修补还原,测试前根据自己的属性配置修改opencv.props文件。首先利用SIFT算子进行两幅图的特征点匹配,再采用TPS算法实现图像还原,最后将处理后的图像与原图再做一次SIFT...
1: 输出一个Mat对象的像素 自定义一个Mat 对象,然后输出像素值(像素值基本都在 0 – 255 之间 ,图像为三通道) 代码 public static void F1() { Scalar s = new Scalar(0, 0, 255); //定义一个三通道颜色...
opencv中Mat转换成内存数据的jpeg格式,以及显示在mfc的界面中
cvlib_mex 供windows64位matlab使用的,已经封装了openCV重要函数的库。matlab可直接调用cvlib_mex.mexw64文件。
c++里通过opencv读取图片后考入内存传出指针给c#,并在picturebox里显示
本程序实现了基于OpenCV的矩阵操作,包括随机创建矩阵,矩阵运算,计算均值、标准差等,适合刚学OpenCV的新手