RGB 컬러 공간 분리 – 메뉴 기반 구현

이번에는 본격적으로 OpenCV를 사용하여 영상처리를 해 보겠습니다. 그 첫 단계로 메뉴기반 정지영상 처리를 해 볼 것이며, cvSplit함수를 사용하여 RGB 컬러공간을 분리하는 예제를 구현해 보겠습니다.   먼저 OpenCV 2.1 C API Reference에서 cvSplit함수를 찾아보면 다음과 같습니다. cvSplit함수는 다중 채널(Multi-channel)배열을 여러 개의 단일 채널(Single-channel) 배열로 분할하거나, 배열에서 단일 채널을 추출 할 수 있음을 알 수 있습니다. 또한, […]

Read More

클립보드 기능 구현

이번에는 자주 사용하는 기능인 C&P(Copy & Paste)를 구현해 보도록 하겠습니다. C&P를 구현하기 위해서는 이미지를 DIB(장치 독립 비트맵;Device Independent Bitmap)으로 변환하여 클립보드 영역에 넘겨주거나, 클립보드 영역에서 데이터를 받아오면 됩니다. 클립보드 영역으로 데이터를 넘겨주기 위하여 CopyClipBoard맴버함수, CopyToHandle 맴버 함수를 추가하여, ID_EDIT_COPY이벤트 핸들러에 등록합니다. 먼저 CopyClipBoard 맴버 함수를 Doc Class에 작성하겠습니다.   반환 형식 : void 함수 이름 […]

Read More

모든 창 닫기 구현

이번 시간에는 열려있는 모든 창을 닫는 기능을 구현해 보도록 하겠습니다. 먼저 리소스 뷰를 보기 좋게 꺼내어 두는게 좋겠죠? [보기] → [다른 창] → [리소스 뷰]를 클릭합니다.   이번엔 메뉴 바에 해당 기능을 추가할 예정입니다. 리소스 뷰에서 [Menu] → [IDR_*TYPE]을 선택한 후 그림과 같이 지정합니다. Caption : 모든 창 닫기 ID : ID_FILE_CLOSE_ALL Prompt : 열려진 […]

Read More

OpenCV 파일 저장기능 구현2

“OpenCV 파일 저장기능 구현(http://deios.kr/401)”에 파일 저장기능과 파일 열기기능을 강화해 보도록 하겠습니다.   먼저 “새 이름으로 저장”시 자동으로 확장자를 추가하기 위해서 OnFileSaveAs함수를 수정하겠습니다. 수정 전 CFileDialog dlgFile(TRUE); CString fileName; const int c_cMaxFiles = 100; const int c_cbBuffSize = (c_cMaxFiles * (MAX_PATH + 1)) + 1; dlgFile.GetOFN().lpstrFile = fileName.GetBuffer(c_cbBuffSize); dlgFile.GetOFN().nMaxFile = c_cbBuffSize; int chk = dlgFile.DoModal(); fileName.ReleaseBuffer(); […]

Read More