프로젝트 구성
도구상자에서 PictureBoxIpl
, Timer
을 Form1에 생성합니다. 위의 이미지와 같이 배치합니다.
속성을 아래와 같이 설정합니다.
- PictureBoxIpl
- Timer
- Enable : True
- Interval : 33
카메라 출력
namespace
에 OpenCV
와 CPlusPlus
사용할 수 있도록 선언합니다.
카메라의 영상을 받아올 VideoCapture
와 영상을 출력해 줄 frame
를 선언합니다.
VideoCapture
는 Mat
형식을 사용하여 영상을 출력합니다.
try~catch
를 이용하여 카메라가 인식되지 않았을 때 오류가 발생하지 않도록 합니다.
VideoCapture(0);
에서 0
은 카메라의 장치 번호입니다. 웹캠이 달려있는 노트북의 경우 0이 노트북 카메라
입니다.
- Tip : 카메라를 2개 이상 이용한다면
0
이 아닌 1
로 입력하면 외부 카메라로 인식
되어 출력됩니다.
video.FrameWidth
.video.FrameHeight
는 영상의 너비
와 높이
를 설정합니다. 장치가 인식되지 않을 경우 catch
로 넘어가며 timer1
를 사용하지 않게됩니다.
video.Read()
를 이용하여 카메라의 영상을 받아오게 되고, frame
에 저장하게 됩니다.
pictreuBoxIpl1
에 해당 영상을 출력하며, frame
의 형식은 Mat
형식이므로 *.ToIplImage()
를 이용하여 형식을 변환합니다.
- Tip :
timer1
은 33ms 마다 실행되며 그 때마다 영상을 출력합니다. Interval
값을 수정하면 프레임의 수가 바뀌게 됩니다.
메모리 관리
를 위하여 폼이 닫힐 때 Dispose()
를 이용하여 메모리 할당을 해제합니다.
- Tip :
Dispose()
는 클래스등의 메모리 할당을 해제
합니다.
전체 코드
댓글 남기기