建立矩陣,直接宣告矩陣大小及型態
Mat image(240, 320, CV_8UC3);
重新分配矩陣大小
image.create(480, 640, CV_8UC3);
建立矩陣時,同時給予初始值(所有值設成5)
Mat A33(3, 3, CV_32F, Scalar(5));
宣告所有值都是1的矩陣,再將所有值乘5
Mat B33 = Mat::ones(3, 3, CV_32F)*5.;
宣告所有值都是0的矩陣,再將所有值加5
Mat C33 = Mat::zeros(3, 3, CV_32F) + 5.;
宣告指定數值的矩陣
Mat A22 = (Mat_<float>(2,2) << 5, -15, 20, -15);
宣告矩陣並給予指定陣列
float B22data[] = { 5, -15, 20, -15};
Mat B22 = Mat(2, 2, CV_32F, B22data).clone();
宣告隨機分佈的亂數值
cv::Mat vec01 = cv::Mat::zeros(1, 10, CV_8U);
cv::randu(vec01, cv::Scalar(0), cv::Scalar(256));
宣告高斯分佈的亂數值
cv::Mat vec02 = cv::Mat::zeros(1, 10, CV_8U);
cv::randn(vec02, cv::Scalar(128), cv::Scalar(10));
cv::Mat轉換成cv::Mat(不複製記憶體)
Mat image_alias = image;
將陣列轉換成cv::Mat
float* Idata = new float[480*640*3];
Mat I(480, 640, CV_32FC3, Idata);
將vector陣列轉換成cv::Mat
vector<Point> iptvec(10);
Mat dstMat(iptvec);
將IplImage轉換成cv::Mat
IplImage* img = cvCreateImage(cvSize(320,240), 16, 1);
Mat dstMat = cvarrToMat(img);
將cv::Mat轉換成IplImage
Mat srcMat;
IplImage img = srcMat;
將cv::Mat轉換成CvMat
Mat srcMat;
CvMat dstCvMat = srcMat;
將IplImage複製到cv::Mat(複製記憶體)
IplImage* img = cvCreateImage(cvSize(320,240), 16, 1);
Mat dstMat = cvarrToMat(img).clone();
將cv::Mat複製給vector
Mat srcMat;
vector<Point2f> ptvec = Mat_<Point2f>(srcMat);