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

20151124 윤재희 #9 히스토그램, 캠 영상처리

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

==================================Outline====================================

WinAPI BMP viewer

    - 히스토그램

 캠 영상처리

----------------------------------------------------------------------------

WinAPI BMP viewer

 

히스토그램

 

 

PatBlt을 사용하여 배경색을 하얀색으로 바꾼 후에 히스토그램을 출력해보자.

 

 

BOOL PatBlt(HDC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, DWORD dwRop);

 

hdc : DC의 핸들

 

nXLeft, nYLeft : 채색을 시작할 좌상단 좌표. 논리 좌표이다.

 

nWidth, nHeight : 채색할 사각 영역의 넓이와 높이

 

dwRop : 채색 방법을 지정하는 플래그이며 다음 중 하나의 플래그를 지정해 준다. 이 플래그들은 현재 DC에 선택되어 있는 브러시의 색상과 화면에 이미 출력되어 있는 그림의 색상을 어떻게 혼합할 것인가를 지정한다.

플래그

설명

PATCOPY

DC에 선택되어 있는 브러시의 색상을 그대로 출력한다.

PATINVERT

브러시의 색상과 화면의 색상을 XOR 연산한다.

DSTINVERT

화면의 색상을 반전시킨다.

BLACKNESS

팔레트의 0번 색상으로 채운다. 보통 검정색이다.

WHITENESS

팔레트의 1번 색상으로 채운다. 보통 흰색이다.

그래프의 선을 그리는 for문 위에서 PatBlt으로 그래프 배경을 흰색으로 칠해준다.

 

PatBlt(MemDC, 0, 0, XGRAPH+1, YGRAPH, WHITENESS);

 

 

배경이 하얗게 되었으니 그래프를 그려보자.

 

 

 

가로축은 그래프의 기준이 되는 선을 하나만 그리고, 세로 축은 각 히스토그램의 값과 세로축까지 총 257개의 선을 그려야 한다.

//0은 검정색, 0xFF는 흰색

 

for문을 사용하여 돌려야 한다.

 

 

모든 값은 0이상의 값을 가지기 때문에 가로축을 그릴 필요는 없다.

 

실시간 함수를 그릴 때는 SetPixel함수보다는 win32API에서 제공하는 함수를 사용하는 것이 빠르다.

 

영상처리

 

vfw 헤더 파일을 include시키고 라이브러리에 vfw32.lib을 추가하자.

//vfwVideo for Windows의 약자이다.

 

 

 


 

vfw에 있는 함수를 사용하여 캠 영상을 캡쳐한다.

 


 

  

 

가로, 세로 320, 240으로 define하여 사용하고 각 함수의 리턴 값을 사용하여 에러 처리를 해주자.

 


 

728x90