4분할로 웹캠 또는 동영상을 보여주는 OpenCV C++ 예제OpenCV/OpenCV 강좌2023. 10. 8. 22:23
Table of Contents
반응형
4분할로 웹캠 또는 동영상을 보여주는 OpenCV C++ 예제 코드입니다.
2021. 12. 4 – 최초작성
초기화면 또는 0을 누른 경우에는 4개의 영상을 4분할로 보여주며 1 ~ 4 사이 숫자 누르면 영상 1개씩 전체화면으로 보여줍니다.
테스트에 사용한 영상을 캡처한 결과입니다. 요청 있을시 이미지를 삭제하도록 하겠습니다.
전체 소스 코드입니다.
#include "opencv2/opencv.hpp" #include "iostream" using namespace std; using namespace cv; int main() { VideoCapture camera1("1.mp4"); if (!camera1.isOpened()) { cout << "ERROR: Could not open camera1" << endl; exit(1); } VideoCapture camera2("2.mp4"); if (!camera2.isOpened()) { cout << "ERROR: Could not open camera2" << endl; exit(1); } VideoCapture camera3("3.mp4"); if (!camera3.isOpened()) { cout << "ERROR: Could not open camera3" << endl; exit(1); } VideoCapture camera4("4.mp4"); if (!camera4.isOpened()) { cout << "ERROR: Could not open camera4" << endl; exit(1); } int mode = 0; while(1) { Mat frame1, frame2, frame3, frame4; camera1 >> frame1; if (frame1.empty()) { cout << "ERROR! blank frame1 grabbed\n"; break; } camera2 >> frame2; if (frame2.empty()) { cout << "ERROR! blank frame2 grabbed\n"; break; } camera3 >> frame3; if (frame3.empty()) { cout << "ERROR! blank frame3 grabbed\n"; break; } camera4 >> frame4; if (frame4.empty()) { cout << "ERROR! blank frame4 grabbed\n"; break; } switch(mode) { case 1: putText( frame1, "Camera 1", Point(20, 70), FONT_HERSHEY_TRIPLEX, 2, Scalar(0, 255, 0) ); imshow("Webcam", frame1); break; case 2: putText( frame2, "Camera 2", Point(20, 70), FONT_HERSHEY_TRIPLEX, 2, Scalar(0, 255, 0) ); imshow("Webcam", frame2); break; case 3: putText( frame3, "Camera 3", Point(20, 70), FONT_HERSHEY_TRIPLEX, 2, Scalar(0, 255, 0) ); imshow("Webcam", frame3); break; case 4: putText( frame4, "Camera 4", Point(20, 70), FONT_HERSHEY_TRIPLEX, 2, Scalar(0, 255, 0) ); imshow("Webcam", frame4); break; default: Mat imgh1; Mat imgh2; Mat img_result; hconcat(frame1, frame2, imgh1); hconcat(frame3, frame4, imgh2); vconcat(imgh1, imgh2, img_result); putText( img_result, "ALL", Point(20, 70), FONT_HERSHEY_TRIPLEX, 2, Scalar(0, 255, 0) ); imshow("Webcam", img_result); break; } int key = waitKey(1); if ( key - '0' >= 0 && key - '0' < 5 ) mode = key - '0'; if (key == 27) break; } return 0; } |
반응형
'OpenCV > OpenCV 강좌' 카테고리의 다른 글
fps 표시 및 동영상 파일 저장하며 webcam 영상 보여주는 OpenCV C++ 예제 코드 (0) | 2023.10.10 |
---|---|
OpenCV로 Aspect Ratio 시각화해보기 (0) | 2023.10.10 |
OpenCV Python – 이미지 연결하는 hconcat, vconcat 예제 (0) | 2023.10.08 |
OpenCV Python – fps 출력하는 Webcam/Video File 기본 예제 코드 (0) | 2023.10.08 |
OpenCV Python을 사용하여 HeatMap 흉내내기 – applyColorMap 사용 (0) | 2023.10.08 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!