【OpenCV3】cv::Mat类成员函数详解
生活随笔
收集整理的這篇文章主要介紹了
【OpenCV3】cv::Mat类成员函数详解
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
cv::Mat為OpenCV2和OpenCV3中最重要的類(lèi),可以毫不夸張得說(shuō),掌握了cv::Mat的操作,就掌握了OpenCV大半,這里將詳細(xì)的介紹下cv::Mat類(lèi)的成員函數(shù)及其使用。
1、clone()
m1 = m0.clone(); //將m0完全拷貝到m1中,同時(shí)拷貝m0中的所有數(shù)據(jù),且拷貝的矩陣是連續(xù)的。2、copyTo()
m0.copyTo(m1); // 將m0中的內(nèi)容拷貝到m1中,如果有必要重新分配m1(等價(jià)于m1 = m0.clone())。 m0.copyTo(m1, mask); //將m0中,mask所指示的的數(shù)據(jù)拷貝到m1中。
3、convertTo()
m0.convertTo(m1, type, scale, offset); //將m0中的元素轉(zhuǎn)換成type類(lèi)(CV_32F等),作scale尺度的縮放,offset偏移,寫(xiě)入m1中。
4、setTo()
m0.setTo(s,mask); //將m0中所有的元素的值設(shè)為s;如果使用mask,則只設(shè)定mask中的非零元素。
5、reshape()
m0.reshape(chan, rows); //改變二維矩陣的的實(shí)際形狀,不進(jìn)行數(shù)據(jù)拷貝;若chan或rows為0,則表示不作改變。
6、push_back()
m0.push_back(s); //對(duì)mx1矩陣進(jìn)行擴(kuò)展,并在末尾插入單一值s。 m0.push_back(m1); //對(duì)mxn矩陣作k行擴(kuò)展,并將m1拷貝到這些行中;m1的大小為kxn。
7、pop_back()
m0.pop_back(n); //從m0尾部移除n行,默認(rèn)情況下n為1。
8、locateROI()
m0.locateROI(size, offset); //將m0的大小重寫(xiě)為size,如果m0重寫(xiě)后變成更大的矩陣,則起始點(diǎn)為cv::Pointoffset點(diǎn)。
9、adjustROI()
m0.adjustROI(t, b, l, r); //在m0的上下左右分別添加t、b、l、r個(gè)像素。
10、total()
m0.total(); //計(jì)算所有數(shù)組元素的個(gè)數(shù),不考慮通道。
11、isContinuous()
m0.isContinuous(); //如果m0所有的行在內(nèi)存空間中打包時(shí)都沒(méi)有間隙,則返回true。
12、elementSize()
m0.elementSize(); //返回矩陣m0中每個(gè)元素的字節(jié)大小(如3通道float型的矩陣則返回12)。
13、elementSize1()
m0.elementSize1(); //返回矩陣m0中每個(gè)次元素的字節(jié)大小(如3通道float型的矩陣則返回4)。
14、type()
m0.type(); //返回m0中元素的有效類(lèi)型標(biāo)識(shí)符(如CV_32FC3)。
15、depth()
m0.depth(); //返回m0中單個(gè)通道中元素的有效類(lèi)型標(biāo)識(shí)符(如CV_32F)。
16、channels()
m0.channels(); //返回m0中元素的通道數(shù)目。
17、size()
m0.size(); //以cv::Size對(duì)象的形式返回m0的大小。
18、empty()
m0.empty(); //如果數(shù)組中沒(méi)有元素(如m0.total == 0或m0.data == NULL)則返回true。
2017.03.28
總結(jié)
以上是生活随笔為你收集整理的【OpenCV3】cv::Mat类成员函数详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【OpenCV3】cv::Mat块访问与
- 下一篇: 【OpenCV3】阈值化操作——cv::