日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【OpenCV3】cv::Mat的定义与初始化

發布時間:2025/3/21 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【OpenCV3】cv::Mat的定义与初始化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

cv::Mat是OpenCV2和OpenCV3中基本的數據類型,在cv::Mat類中,關于cv::Mat的定義和初始化有多種不同的形式,這里,將對其進行詳盡的總結和介紹。

一、無數據拷貝的cv::Mat的定義和初始化

1、默認形式

cv::Mat m;

2、指定類型和大小(行列)的二維數組

cv::Mat m(int rows, int cols, int type);

3、有初始化值的指定類型和大小(行列)的二維數組

cv::Mat m(int rows, int cols, int type, const Scalar& s);

4、使用預先存在數據定義的指定類型和大小(行列)的二維數組

cv::Mat m(int rows, int cols, int type, void* data, size_t step = AUTO_STEP);

5、指定大小(size)和類型的二維數組

cv::Mat m(cv::Size sz, int type, const Scalar& s);
6、使用預先存在的數據定義的指定大小(size)和類型的二維數組

cv::Mat m(cv::Size sz, int type, void* data, size_t step = AUTO_STEP);
7、指定類型的多維數組

cv::Mat m(int ndims, const int* sizes, int type);
8、有初始化值的指定類型多維數組

cv::Mat m(int ndims, const int* sizes, int type, const Scalar& s);
9、使用預先存在的數據定義的指定類型的多維數組

cv::Mat m(int ndims, const int* sizes, int type, void* data, size_t step = AUTO_STEP);
二、從其他cv::Mat進行數據拷貝的定義和初始化

1、拷貝構造形式

cv::Mat m(const cv::Mat& mat);
2、指定行列范圍的拷貝構造

cv::Mat m(const cv::Mat& mat, const cv::Range& rows, const cv::Range& cols);

3、指定ROI的拷貝構造

cv::Mat m(const cv::Mat& mat, const cv::Rect& roi);
4、使用多維數組中指定范圍內的數據的拷貝構造

cv::Mat(const cv::Mat& mat, const cv::Range* ranges);


三、使用OpenCV中的模板進行定義和初始化

1、使用cv::Vec定義相同類型、大小為n的一維數組

cv::Mat m(const cv::Vec<T, n>& vec, bool = copyData = true);
2、使用cv::Matx定義相同類型、大小為mxn的二維數組

cv::Mat(const cv::Matx<T, m, n>& vec, bool copyData = true);
3、使用STL vector定義相同類型的一維數組

cv::Mat(const std::vector<T>& vec, bool copyData = true);
四、直接使用靜態函數創建cv::Mat

1、使用zeros()函數定義指定大小和類型的cv::Mat(全為0)

cv::Mat m = cv::Mat::zeros(int rows, int cols, int type);

2、使用ones()函數定義指定大小和類型的cv::Mat(全為0)

cv::Mat m = cv::Mat::ones(int rows, int cols, int type);

3、使用eye()函數定義指定大小和類型的cv::Mat(恒等矩陣)

cv::Mat m = cv::Mat::eye(int rows, int cols, int type);

總結

以上是生活随笔為你收集整理的【OpenCV3】cv::Mat的定义与初始化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。