👩‍💻 IoT (Embedded)/Image Processing

[C++ 로 OpenCV (3)] 이미지 imread 와 웹캠 VideoCapture불러오기

징징알파카 2023. 12. 28. 16:54
728x90
반응형

💗 OpenCV 로 image 불러오기

#include "opencv2/opencv.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main() {
	std::cout << "Hello OpenCV" << CV_VERSION << std::endl;

	Mat img = imread("lena.jpg", IMREAD_COLOR);



	namedWindow("image");
	imshow("Lena", img);
	waitKey();
	//destroyAllWindows();

	return 0;
}

 

💗 OpenCV 로 webcam 불러오기

#include "opencv2/opencv.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
	//비디오 캡처 초기화
	VideoCapture cap(0);

	//카메라가 성공적으로 열렸는지 확인을 위한 조건문
	if (!cap.isOpened())
	{
		printf("Can't open the camera");
		return -1;
	}

	//매트릭스 초기화
	Mat img;

	//비디오 캡처 및 표시:
	while (1)
	{
		cap >> img;
		imshow("camera img", img); //창에 캡처된 프레임을 표시합니다.

		if (waitKey(1) == 27)
			break;
	}

	return 0;
}

 

💗 OpenCV 로 webcam 거꾸로 된 버전 (reverse) 불러오기

#include "opencv2/opencv.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main() {
	auto cap = VideoCapture(0);

	int delay = 33;
	Mat img;

	while (cap.isOpened()) {
		if (waitKey(delay) == 27) break;

		auto ret = cap.read(img);
		auto inverse = ~img;

		imshow("Movie", img);
		imshow("Movie inverse", inverse);
	}

	cap.release();
	destroyAllWindows();

	return 0;
}

 

💗 OpenCV 로 webcam 을 gray 로 불러오기

#include "opencv2/opencv.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main() {
	auto cap = VideoCapture(0);

	int delay = 33;
	Mat img;
	Mat img_gray;

	while (cap.isOpened()) {
		if (waitKey(delay) == 27) break;

		auto ret = cap.read(img);
		cvtColor(img, img_gray, COLOR_BGR2GRAY);

		imshow("Movie1", img);
		imshow("Movie2", img_gray);
	}

	cap.release();
	destroyAllWindows();

	return 0;
}

728x90
반응형