본문 바로가기
코스웨어/15년 스마트컨트롤러

20151124_박서연_일일업무일지_WinAPI(9)

by 알 수 없는 사용자 2015. 11. 24.
728x90
반응형

2015-11-24


*WinAPI


#히스토그램 그리기

히스토그램을 그리기 위해서 먼저 각 픽셀을 카운트 해보자.



그리고 카운트 값중 최대값을 알아낸 뒤


255를 기준으로 각 픽셀값들을 조정한다.


그리고 새로운 DC를 생성하여 그려준다.


그리고 ON_PAINT에서 위치를 지정하여 그려주면 된다.


결과

현재 파랑에 대해서만 해보았는데 빨강, 초록색에 대한 히스토그램도 반드시 해볼 것.


#카메라 영상 데이터 캡쳐 및 조작하기


먼저 단순히 창에서 PreView만 해보자.

카메라를 사용하기 위하여 먼저 준비해야 할 것이있다. 먼저 Vfw.h를 include 해주어야 하고 vfw32.lib라이브러리 사용을 설정해 주어야 한다. 라이브러리 사용설정에는 두가지 방법이 있는데 속성을 이용하는 방법과 코드에 직접 명시하는 방법이 있다.

 


준비를 마쳤으므로 코딩을 해보자.


이 vfw32라이브러리 사용하는 절차가 있다.(정해진)

이 절차대로 사용하면 된다.

각 각 함수는 MSDN에 들어가면 그 사용법과 원형을 제대로 알 수 있다.

함수를 사용하고 오류 처리에 대해서 확실히 해두자.


결과




우리가 이렇게 보여지는 영상은 보여지기만 할 뿐 어떠한 조작도 할 수 없다.

영상에 대한 조작을 위해서는 콜백함수를 써야하는데 이 콜백함수 안에서 조작을 할수가 있다.

capSetCallbackOnFrame(hCamera, Capture);;

두번째 인자인 Capture가 콜백함수의 이름이다.

콜백 함수의 두번째 인자인 LPVIDEOHDR lpVHdr에 영상데이터와 정보가 들어오게 되는데 이를 조작한다면 영상데이터를 조작할 수 있다.


위의 코드는 lpVHd->lpData를 vData에 복사를 하여 이를 조작한 뒤 화면에 출력한다.

화면에 출력하는 함수는 StretchDIBits이다.


이렇게 3세트를 R, G, B로 진행해주면 다음과 같은 결과를 얻을 수 있다.


결과



728x90