创建
Mat img(200,200,cv_8UC1(8U位无符号,C1通道 ),Scalar(100));
Mat m()
{
Mat m(200,200,cv_8U1);
return m;
}
Mat src=m();
局部的Mat对象不会被销毁,只有当它的引用计数=0 时,才销毁。
IplImage Mat 转化--------------------IplImage 是基于结构的;Mat 是基于对象类的。
IplImage *img=cvLoadImage("C:\\Users\\Administrator\\Desktop\\d50735fae6cd7b896679e5810d2442a7d9330e9f.jpg");
cv::Mat m(img,true);//方法1 false:共享内存 true:不共享内存
cv::Mat m=img;//方法2
#include <Windows.h>
#include "opencv.hpp"
int main()
{
//IplImage *img=cvLoadImage("C:\\Users\\Administrator\\Desktop\\d50735fae6cd7b896679e5810d2442a7d9330e9f.jpg");
//只能指针 --- 引用计数=0 自动销毁
cv::Ptr<IplImage> img=cvLoadImage("C:\\Users\\Administrator\\Desktop\\d50735fae6cd7b896679e5810d2442a7d9330e9f.jpg");
cv::Mat m=img;
//cv::Mat m1(img,false);
//cv::Mat m2(img); //作为构造参数传入。
IplImage* xx;
xx=&m.operator IplImage();
cvNamedWindow("src");
cvShowImage("src",xx);
//cv::imshow("xx",xx);
cvWaitKey(0);
return 0;
}