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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Opencv显示创建Mat对象的七种方式

發(fā)布時間:2023/12/18 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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?<<?"【運行結果】"?<<?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?<<?"運行結果"?<<?endl?<<?newImage?<<?endl;??
  • ??
  • ????return?0;??
  • }??
  • 總結

    以上是生活随笔為你收集整理的Opencv显示创建Mat对象的七种方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。