Opencv4.0:遍历Mat图像空间、读取摄像头
程序员文章站
2022-12-05 08:47:05
GitHub https://github.com/gongluck/Opencv3.4 study.git C++ include "opencv2/opencv.hpp" using namespace cv; pragma comment(lib, "opencv_calib3d340d.li ......
GitHub
#include "opencv2/opencv.hpp" using namespace cv; #pragma comment(lib, "opencv_calib3d340d.lib") #pragma comment(lib, "opencv_core340d.lib") #pragma comment(lib, "opencv_dnn340d.lib") #pragma comment(lib, "opencv_features2d340d.lib") #pragma comment(lib, "opencv_flann340d.lib") #pragma comment(lib, "opencv_highgui340d.lib") #pragma comment(lib, "opencv_imgcodecs340d.lib") #pragma comment(lib, "opencv_imgproc340d.lib") #pragma comment(lib, "opencv_ml340d.lib") #pragma comment(lib, "opencv_objdetect340d.lib") #pragma comment(lib, "opencv_photo340d.lib") #pragma comment(lib, "opencv_shape340d.lib") #pragma comment(lib, "opencv_stitching340d.lib") #pragma comment(lib, "opencv_superres340d.lib") #pragma comment(lib, "opencv_video340d.lib") #pragma comment(lib, "opencv_videoio340d.lib") #pragma comment(lib, "opencv_videostab340d.lib") int main() { //显示图片 Mat image = imread("test.png"); namedWindow("window"); imshow("window", image); //遍历Mat图像空间 Mat mat(500, 300, CV_8UC3); //mat.create(500, 300, CV_8UC3); int size = mat.rows*mat.cols*mat.elemSize(); int esize = mat.elemSize(); for (int i = 0; i < size; i += esize) { mat.data[i] = 0;//B mat.data[i+1] = 255;//G mat.data[i+2] = 0;//R } namedWindow("Mat"); imshow("Mat", mat); //读取摄像头 VideoCapture cam; bool res = cam.open("rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov"); //bool res = cam.open(0); Mat capture; namedWindow("Cap"); if (cam.isOpened()) { while (true) { //cam.read(capture); if (!cam.grab())//读取并解码 continue; if(!cam.retrieve(capture))//YUV转RGB continue; imshow("Cap", capture); waitKey(1); } cam.release(); } waitKey(0); system("pause"); return 0; }
下一篇: [STL] list的使用