Opencv4.0:遍歷Mat圖像空間、讀取攝像頭


GitHub

https://github.com/gongluck/Opencv3.4-study.git

#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;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM