生活随笔
收集整理的這篇文章主要介紹了
【OpenCV入门学习笔记2】:Mat对象
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
b站:https://www.bilibili.com/video/BV1uW411d7Wf?p=5
我在b站的學習筆記和實驗代碼的整理如下:
示例代碼:
Matdemo
#include<opencv2/opencv.hpp>
#include<iostream>using namespace std
;
using namespace cv
;int main(int argc
, char** argv
)
{Mat src
;src
= imread("E:/picture/pic_cv/pic.jpg");if (src
.empty()) {cout
<< "Could not load image..." << endl
;return -1;}namedWindow("input picture", WINDOW_AUTOSIZE
);imshow("input picture", src
);Mat dst
;dst
= src
.clone();namedWindow("output_background1", WINDOW_AUTOSIZE
);imshow("output_background1", dst
);src
.copyTo(dst
);namedWindow("output_background2", WINDOW_AUTOSIZE
);imshow("output_background2", dst
);cvtColor(src
,dst
,COLOR_BGR2GRAY
);printf("src.channels:%d\n", src
.channels());printf("dst.channels:%d\n", dst
.channels());namedWindow("output_background3", WINDOW_AUTOSIZE
);imshow("output_background3", dst
);int rows
= dst
.rows
;int cols
= dst
.cols
;printf("rows:%d col:%d\n", rows
, cols
);const uchar
* firstRow
= dst
.ptr
<uchar
>(0);printf("first pixel value:%d\n", *firstRow
);Mat M
= Mat(100, 100, CV_8UC3
, Scalar(0, 0, 255));cout
<< "M = " << endl
<< M
<< endl
;namedWindow("M", WINDOW_AUTOSIZE
);imshow("M", M
);Mat N
;N
.create(src
.size(), src
.type());N
= Scalar(231, 144, 23);uchar
* firstRowN
= N
.ptr
<uchar
>(0);printf("N.first_pixel:%d\n", *firstRowN
);namedWindow("N", WINDOW_AUTOSIZE
);imshow("N", N
);Mat kernel
= (Mat_
<float>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);filter2D(src
, dst
, -1, kernel
);namedWindow("filter2D", WINDOW_AUTOSIZE
);imshow("filter2D", dst
);waitKey();return 0;
}
總結
以上是生活随笔為你收集整理的【OpenCV入门学习笔记2】:Mat对象的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。