'개발'에 해당되는 글 46건

  1. 2009.03.18 Windows Mobile Programming Part3 – 시스템 이해하기
  2. 2009.03.18 Windows Mobile Programming Part2 - “윈도우 모바일에서 한글 사용하기”
  3. 2009.03.18 Windows Mobile Programming Part1
  4. 2009.01.08 cvFindContours
  5. 2008.12.22 OpenCV 유용한 함수 정리
2009. 3. 18. 10:53

Windows Mobile Programming Part3 – 시스템 이해하기


Windows Mobile Programming Part3 – 시스템 이해하기

 

드디어 T옴니아를 받았습니다!

 

저는 시스템적인 관점에서 윈도우 모바일 장치를 이해하고자 합니다.

다행히 윈도우 모바일 장치(옴니아의 경우 Windows Mobile Professional 버전입니다.)의 경우 시스템에 대한 정보를 얻기 쉽습니다. 시스템에 대한 정보는 Remote Tools에 하나인 Remote System Information툴을 사용하여 시스템 정보를 얻을 수 있습니다.

물론 시스템에 대한 정보는 Remote Registry Editor를 통해서도 확인할 수 있지만 시스템에 대한 이해가 없으면 알수 없기 때문에 Remote System Information 툴을 사용하는 것이 좋습니다.

 

다음 그림은 윈도우 모바일의 버전 및 기본 정보를 보여주는 화면 입니다.

 

다음 그림은 윈도우 모바일 장치의 메모리에 대한 정보를 보여주는 화면입니다.

 

다음 그림은 윈도우 모바일 장치의 배터리 및 전원에 대한 정보를 보여주는 화면입니다.

 

다음 그림은 윈도우 모바일 장치에 대한 설정 부분이 있는 내용입니다. 그리고 옆에 RIL1:과 같은 이름들은 현재 동작중인

디바이스 드라이버에 대한 정보입니다. 이 정보를 가지고 동작중인 디바이스 드라이버나 시스템에서 어떻게 동작하는지 확인할 수 있습니다.

 

2009. 3. 18. 10:52

Windows Mobile Programming Part2 - “윈도우 모바일에서 한글 사용하기”


Windows Mobile Programming Part2

윈도우 모바일에서 한글 사용하기

 

윈도우 모바일 운영체제에서 한글을 사용하기 위해서는 전에 설명했듯이 한글 이미지를 설치해야 합니다. 한글 이미지는 에뮬레이터 프로그램에서 동작하는 한글 운영체제 이미지를 말한다(뭔 말이야? 뒤에서 더 자세히 설명합니다.)

Windows Mobile 6 Emulator Localization Images 를 다운로드 받아야 합니다.

http://www.microsoft.com/downloads/details.aspx?FamilyID=38c46aa8-1dd7-426f-a913-4f370a65a582&DisplayLang=en

 

동영상[Windows Mobile Programming Part2-1]

http://serviceapi.nmv.naver.com/flash/NFPlayer.swf?vid=57B48C2FA724D5C9C5067372BF0EE732D82D&outKey=V123b3013f12b69cdc5e22701e24195182c064af1feb03d66423f2701e24195182c06 


위의 파일을 다운받고 에뮬레이터를 설치합니다. 설치하는 자세한 내용은 다음 동영상을 첨부하기 바랍니다. 디바이스 에뮬레이터에서는 마치 실제 윈도우 모바일 장치처럼 동작을 시키고 심지어 ActiveSync를 통해 동기화도 테스트 할 수 있습니다. ActiveSync를 하는 중요한 이유는 리모트 툴(Remote Tools)을 사용하여 각종 시스템 정보를 확인하기 위해서 입니다.

 

그 후 Visual Studio를 이용하여 한글 프로그래밍 하는 방법은 이제부터는 자유롭습니다. 유니코드를 사용해 한글을 입력하고 프로그래밍 하면 됩니다. 프로그래밍에 대한 간단한 설명은 다음 동영상을 참고하기 바랍니다.

 

동영상[Windows Mobile Programming Part2-2]

http://serviceapi.nmv.naver.com/flash/NFPlayer.swf?vid=FFC635CEADD2DC6E726B5B4FE125EBF59853&outKey=V123d705d644dbe0e3a325caa732847ba922eaca788678c3bc4a45caa732847ba922e 

 

새로운 에뮬레이터 이미지를 설치하는 이유는 다음과 같습니다. 새롭게 설치하는 에뮬레이터 이미지는 한글을 지원하는 윈도우 모바일 운영체제의 롬(ROM) 이미지 입니다. 에뮬레이터는 실제 윈도우 모바일 장치를 에뮬레이션(Emulation)하는 장치입니다. , 윈도우 모바일 하드웨어 장치라고 생각하면 됩니다. 여기에 동작할 수 있도록 해 주는 소프트웨어가 롬 이미지입니다. 기존 이미지가 한글을 지원하지 않는 롬 이미지이기 때문에 한글을 지원할 수 있는 롬 이미지를 설치하고 실행시켜야 제대로 한글을 지원할 수 있는 것입니다. 영문 XP에서 한글을 지원하지 않는 것과 동일한 이유입니다. 설치된 롬 이미지는 C:\Program Files\Windows Mobile 6 SDK\PocketPC\Deviceemulation\0412에 설치되어 있습니다. 자세한 내용은 다음 그림을 참고 하기 바랍니다. 실제 윈도우 모바일 장치에도 그림과 같은 롬 이미지가 장치에 기록되게 됩니다.

어떠한 원리로 한글을 사용할 수 있는지 설명하기 위해 말이 좀 길어젔네요

 

 

2009. 3. 18. 10:50

Windows Mobile Programming Part1


드디어 T옴니아 폰을 질렀습니다.

기존에 사용하고 있던 폰은 제가 개발하고 만든 윈도우 모바일 폰이며 애착이 가는 폰입니다. 그래서 제 스스로 기능을 개선시켜가며 사용하는 재미에 오랫동안 사용하고 있었습니다.

하지만, 대세가 대세인지라 터치폰을 사용해 보기로 결정!

, 그런 이유도 있고 이제는 좀 새로운 폰을 사용해 보고 싶어서 구매를 했습니다.

 

그래서 기념으로 윈도우 모바일 운영체제에 대한 내용을 추가 하도록 하겠습니다.

최근에 Kmobile(http://www.kmobile.co.kr/k_conedu/Conference/Con_gProgram.asp?id=516)

에서 윈도우 모바일 관련 세미나를 진행하기도 해서 관련 사항에 대해 블로그를 올리도록 하겠습니다.

 

윈도우 모바일 개발 환경의 구축

 

1. Windows XP Service Pack 2 또는 Windows Vista 운영체제 설치

1) Windows XP 서비스팩2 운영체제에서는 스마트 폰과 PC와의 연결을 하기 위해서는 액티브 싱크(ActiveSync)가 필요합니다. 최신 버전은 4.5 입니다.

http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=9e641c34-6f7f-404d-a04b-dc09f8141141

2) Windows Vista 운영체제에서는 Windows Mobile Device Center 6.1 로 업데이트가 필요합니다.

http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=46f72df1-e46a-4a5f-a791-09f07aaa1914

 

2. 개발 도구로는 한글이든 영문이든 Visual Studio 2008 Professional Edition 이상이 있어야 합니다. 저는 아직까지 Visual Studio 2005 Professional Edition을 사용하고 있습니다. 그 이유는 윈도우 임베디드 CE 6.0 플랫폼 빌더를 2008에서 지원하지 않기 때문입니다.

http://www.microsoft.com/downloads/details.aspx?FamilyID=83c3a1ec-ed72-4a79-8961-25635db0192b&DisplayLang=ko

 

3. Visual Studio 2008 서비스 팩1을 설치해 주시기 바랍니다. .NET 프레임워크 3.5 WIndows Mobile 개발 컴포넌트를 업데이트 할 수 있습니다

http://www.microsoft.com/downloads/details.aspx?FamilyID=fbee1648-7106-44a7-9649-6d9f6d58056e&DisplayLang=ko

 

4. Windows Mobile 6 Professional Edition SDK를 설치하면 됩니다. http://www.microsoft.com/downloads/details.aspx?FamilyID=06111a3a-a651-4745-88ef-3d48091a390b&DisplayLang=en

 

5. 원래 Windows Mobile 6 SDK 에는 영문(USA) 밖에 없기 때문에 한글을 사용하기 위해서는 Windows Mobile 6 Emulator Localization Images 를 다운로드 받아야 합니다.

http://www.microsoft.com/downloads/details.aspx?FamilyID=38c46aa8-1dd7-426f-a913-4f370a65a582&DisplayLang=en

 

6. 마지막으로 Windows Mobile 6.1.4 Emulator Images (USA) 를 설치해 주면 되는데 여기에는 T옴니아 폰이나 HTC 터치 다이아몬드 HD 디스플레이처럼 DPI 480 * 800 이미지가 포함 되어 있으므로 이를 다운로드 받아서 사용하는 것이 좋습니다.

http://www.microsoft.com/downloads/details.aspx?FamilyID=1a7a6b52-f89e-4354-84ce-5d19c204498a&DisplayLang=en

 

위 내용은 원래 MS의 서진호 차장의 블로그에서 나오는 이야기를 제 나름대로 수정하여 올립니다.  원문의 주소는 다음과 같습니다.

MS 서진호 차장의 블로그 내용 :http://blogs.msdn.com/jinhoseo/archive/2008/12/23/0-t.aspx

 

Cellular Emulator

윈도우 모바일 개발 환경에서 전화 걸기나 SMS 관련 에뮬레이터를 사용하기 위해서는 Cellular 에뮬레이터를 사용해야 합니다. Windows Mobile SDK를 설치하면 C:\Program Files\Windows Mobile 6 SDK\Tools\Cellular Emulator 디렉토리에 있습니다. 이 툴을 사용하는 방법이나 테스트 방법은 다음 동영상을 참고하시기 바랍니다. 제가 직접 제 PC에서 테스트 하는 장면입니다.

 

http://serviceapi.nmv.naver.com/flash/NFPlayer.swf?vid=838215639A5ECCAEE5934EC84091F65B0E0D&outKey=V128e8bc09b06c84a84de84e49b65315d787c45ba02c912d7bdd784e49b65315d787c


윈도우 모바일 프로그래밍에 대한 보다 자세한 이야기는 월간 마이크로 소프트웨어 3월호(www.imaso.co.kr)나 추후 업데이트될 제 블로그를 참고해 주세요!

2009. 1. 8. 19:49

cvFindContours


cvFindContours 함수는 이미지에서 contour를 찾은 후 contour의 갯수를 리턴

원형
int cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq* first_contour,
                            int header_size=sizeof(CvContour), int mode, int mthod, CvPoint offset=cvPoint(0,0) );

패러미터
- image : 8비트 grayscale 영상만을 패러미터로 넘길 수 있다. 0이 아닌 픽셀은 1로, 0인 픽셀은 0으로 간주하여 자체적으로 2진 영상으로 처리하게 된다.

- storage : CvMemStorage 구조체의 포인터를 넘긴다. 실제로 contour 정보가 저장되는 공간이다.

- first_contour : 첫번째 최외곽 contour의 정보를 저장할 CvSeq 구조체의 포인터

- header_size : 시퀀스 헤더의 크기  ex) sizeof(CvContour)

- mode :  contour 검출 방법
  CV_RETR_EXTERNAL - 오직 최외곽 contour만을 검출한다.
  CV_RETR_LIST - 모든 contour를 검출하여 list로 저장한다.
  CV_RETR_CCOMP - 모든 contour를 검출한 후 2단계로 계층화한다.
                              상위 계층은 각 성분(component)의 외곽 경계를 나타내며 하위 계층은 성분 내부의
                              구멍(hole)을 나타낸다.
  CV_RETR_TREE - 모든 contour를 검출한 후 각 contour를 tree 형태로 구조화한다.

- moethod : approximation(생략산) 방법이다.
생략산이란 불필요한 연산량을 줄이기 위하여 모든 contour를 구하지 않고 추정
  CV_CHAIN_CODE - Freeman chain code를 사용하여 contour를 출력한다. 이것 외의 다른 모든 방법은
                            결과물을 polygon(다각형, 버텍스의 나열)로 출력한다.
  CV_CHAIN_APPROX_NONE - 모든 contour의 점을 chain code에서 point로 변환한다.
  CV_CHAIN_APPROX_SIMPLE - 가로, 세로, 대각선 으로 쪼개서 압축하며 함수는 끝점만을 출력한다.
  CV_CHAIN_APPROX_TC89_L1, CV_CHAIN_APPROX_TC89_KCOS - Teh-Chin chain approximation
                                                                                              알고리즘에 사용된다.
  CV_LINK_RUNS - 1의 수평 구획의 연결을 통해 완전히 다른 방식의 contour 검출 알고리즘을 사용한다.  
  CV_RETR_LIST 모드에서만 사용 가능하다.

- offset : 모든 contour 포인트 이동
 
예제

CvMemStorage* storage = cvCreateStorage(0); // 배열 자료형 : 점의 좌표가 들어감
CvSeq* seq = NULL; //경계 개수를 저장할 변수 선언
int numContour = cvFindContours(src, storage, &seq, sizeof(CvContour), CV_RETR_TREE,   
                                             CV_CHAIN_APPROX_SIMPLE);

2008. 12. 22. 22:50

OpenCV 유용한 함수 정리

1. 영상 입출력

//영상 읽기
cvLoadImage()

//영상 보기
cvShowImage()

//영상 저장
cvSaveImage()



2. 창 제어

//창 생성
cvNamedWindow()

//창 이동
cvMoveWindow()

//창 파괴
cvDestroyWindow()

//모든 창 파괴
cvDestroyAllWindow()

//창 크기 조절
cvResizeWindow()



3. 영상 조작

//영상 데이터 할당
cvCreateImage()

//할당한 영상 데이터 해제
cvReleaseImage()

//영상 데이터 복제
cvClonemage()


4. 침식 팽창
/*    침식    */
cvErode();
        
/*    팽창    */
cvDilate();