生活随笔
收集整理的這篇文章主要介紹了
Opencv显示创建Mat对象的七种方式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
方式一:
?
[cpp]?view plain?copy
#include<iostream>??#include<opencv2/opencv.hpp>????using?namespace?std;??using?namespace?cv;????int?main()??{??????//創(chuàng)建一個2*2?類型為8位的uchar類型三通道的?顏色為黃色??????Mat?img(2,?2,?CV_8UC3,?Scalar(0,?255,?255));??????cout?<<?"矩陣元素"?<<?endl?<<?img?<<?endl;????????/*Mat?srcImage?=?imread("G:\\group.jpg");?????cout?<<?"圖片矩陣"?<<?endl?<<?srcImage?<<?endl;*/????????return?0;??}??
?
?
方式二:
創(chuàng)建三維的矩陣
?
[cpp]?view plain?copy
//創(chuàng)建一個超過二維的矩陣??#include<iostream>??#include<opencv2/opencv.hpp>????using?namespace?std;??using?namespace?cv;????int?main()??{??????int?sz[3]?=?{?2,?2,?2?};??????//3維的??為2*2*2的???元素全部為0??????Mat?array2(3,?sz,?CV_8UC1,?Scalar(0));????????//因為是三維的,所以不能用DOS界面顯示????????return?0;??}??
方式三:
?
為已經(jīng)存在的IplImage指針創(chuàng)建一個信息頭
?
[cpp]?view plain?copy
//為已經(jīng)存在的IplImage指針創(chuàng)建一個信息頭??#include<opencv2/opencv.hpp>????using?namespace?cv;????int?main()??{??????IplImage?*img?=?cvLoadImage("G:\\group.jpg",?1);????????Mat?srcImage(img);????????imshow("【測試代碼】",?srcImage);????????waitKey(0);????????return?0;??}??
?
?
方式四:
用Create函數(shù)實現(xiàn)對Mat的初始化
?
[cpp]?view plain?copy
//用Create函數(shù)實現(xiàn)對Mat的初始化??#include<opencv2/opencv.hpp>??#include<iostream>????using?namespace?cv;??using?namespace?std;????int?main()??{??????Mat?img;??????img.create(4,?4,?CV_8UC(2));????????cout?<<?"M?=?"?<<?endl?<<?img?<<?endl;????????return?0;??}??
?
方式五:
采用Matlab的方式初始化
?
[cpp]?view plain?copy
//采用Matlab的方式初始化??#include<iostream>??#include<opencv2/opencv.hpp>????using?namespace?std;??using?namespace?cv;????int?main()??{??????Mat?array1?=?Mat::eye(4,?4,?CV_64F);??????Mat?array2?=?Mat::ones(4,?4,?CV_32F);??????Mat?array3?=?Mat::zeros(4,?4,?CV_8UC1);????????cout?<<?"對角矩陣"?<<?endl?<<?array1?<<?endl;??????cout?<<?"滿1矩陣"?<<?endl?<<?array2?<<?endl;??????cout?<<?"全0矩陣"?<<?endl?<<?array3?<<?endl;????????return?0;??}??
?
?
方式六:
對小矩陣使用逗號分隔式初始化函數(shù)
?
[cpp]?view plain?copy
//對小矩陣使用逗號分隔式初始化函數(shù)??#include<iostream>??#include<opencv2/opencv.hpp>????using?namespace?std;??using?namespace?cv;????int?main()??{??????Mat?array?=?(Mat_<double>(3,?3)?<<?0,?-1,?5,?-1,?5,?-1,?0,?-1,?0);????????cout?<<?"【運行結(jié)果】"?<<?endl?<<?array?<<?endl;????????return?0;??}??
?
?
方式七:
為已存在的對象創(chuàng)建新信息頭
?
[cpp]?view plain?copy
//為已存在的對象創(chuàng)建新信息頭??#include<iostream>??#include<opencv2/opencv.hpp>????using?namespace?std;??using?namespace?cv;????int?main()??{??????Mat?srcImage(3,?3,?CV_8UC3,?Scalar(0,?0,?255));????????Mat?copyImage;??????srcImage.copyTo(copyImage);????????Mat?newImage?=?srcImage.row(1).clone();??????cout?<<?"運行結(jié)果"?<<?endl?<<?newImage?<<?endl;????????return?0;??}??
總結(jié)
以上是生活随笔為你收集整理的Opencv显示创建Mat对象的七种方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。