//功能:完成矩阵中元素操作功能
//使用到的函数:
//cvMatMulAdd(src1,src2,src3,dst)
//功能是:dist=src1*src2+src3
//src1 第一输入数组
//src2 第二输入数组
//src3 第三输入数组
//dst 输出数组
// CV_MAT_ELEM( matrix, elemtype, row, col )
// 参数
// matrix:要访问的矩阵
// elemtype:矩阵元素的类型
// row:所要访问元素的行数
// col:所要访问元素的列数
#include <cv.h>
#include <highgui.h>
using namespace std;
int main()
{
CvMat * M_Mat_1, *M_Mat_2, *M_Mat_3;
M_Mat_1 = cvCreateMat(3,3,CV_64FC1);
M_Mat_2 = cvCreateMat(3,3,CV_64FC1);
M_Mat_3 = cvCreateMat(3,3,CV_64FC1);
double m_rat[9]={1,2,3,4,5,6,7,8,9};
cvInitMatHeader( M_Mat_1 , 3 , 3 , CV_64FC1 , m_rat );
M_Mat_2 = cvCloneMat( M_Mat_1 );
cvMatMulAdd( M_Mat_1 , M_Mat_2 , 0 , M_Mat_3 );
for (int i=0;i<3;i++)
{
for (int j=0;j<3;j++)
{
cout<<CV_MAT_ELEM( *M_Mat_3 , double , i , j )<<" "<<endl; //注意传参数的问题,传参数错误会导致找不到对应函数的问题(提示:表达式必须包含类类型)
}
}
//cvWaitKey (0); //对CV中创造的窗体才起作用,对黑框不起作用
getchar (); //防止黑框闪现
cvReleaseMat(&M_Mat_1); //记住释放资源
cvReleaseMat(&M_Mat_2);
cvReleaseMat(&M_Mat_3);
return 0;
}
//创建时间2015年6月3日
//功能:完成矩阵整体赋值的问题
//除了这程序中的方法,赋值方法还包括上个程序给出了 另一种方法:cvInitMatHeader
//程序中存在一个小问题,希望大神能够帮忙解决一下:
//问题:M_Mat_4赋值的时候出现内存泄露问题,可私信我QQ:915156234,非常感谢!
#include <cv.h>
#include <highgui.h>
#include <iostream>
using namespace std;
int main()
{
CvScalar m_Value = cvRealScalar(1);
CvMat * M_Mat_1, *M_Mat_2, *M_Mat_3 , *M_Mat_4;
M_Mat_1 = cvCreateMat(3,3,CV_64FC1);
M_Mat_2 = cvCreateMat(3,3,CV_64FC1);
M_Mat_3 = cvCreateMat(3,3,CV_64FC1);
M_Mat_4 = cvCreateMat(3,3,CV_64FC1);
cvSet( M_Mat_1 , m_Value , NULL ); // 设定矩阵为固定值
cvSetZero( M_Mat_2 ); //将M_Mat2全部置零
cvSetIdentity( M_Mat_3 ); //初始化跟M_Mat_1等价
//cvRange(M_Mat_4,2,10); //这个会出现内存泄露的问题,没有解决,谁会?帮忙解决一下!!私信QQ:915156234
for (int i=0;i<3;i++)
{
for (int j=0;j<3;j++)
{
cout<<CV_MAT_ELEM( *M_Mat_3 , double , i , j )<<" "<<endl; //注意传参数的问题,传参数错误会导致找不到对应函数的问题(提示:表达式必须包含类类型)
}
}
getchar (); //防止黑框闪现
cvReleaseMat(&M_Mat_1); //记住释放资源
cvReleaseMat(&M_Mat_2);
cvReleaseMat(&M_Mat_3);
cvReleaseMat(&M_Mat_4);
return 0;
}