HTC-3500 Series Vision Camera Multi Vision Camera Development Manual Ver 2.1 2013. 06. 25 http:// Jun 25, 2013
목차 1. 개요.. 4 2. Multi Vision Camera Specification. 2.1 General feature 2.2 PC Requirements. 2.3 HTC-3500CB - Contents. 2.4 HTC-3500CB - Dimension and Description.. 2.5 HTC-3500CB - Camera Interface.... 2.6 HTC-3500CB - Trigger / Strobe Connector Port. 2.7 HTC-3500CB - Electrical Operating Condition... 2.8 HTC-3500R - Contents... 2.9 HTC-3500R - Camera Interface... 2.10 HTC-3500R - Dimension and Description.. 5 5 5 6 6 7 7 8 9 9 10 3. 개발환경.. 3.1 개발요구사항... 3.2 Development Architecture.. 11 11 11 4. Software Archtecture.. 4.1 장치관리자... 4.2 DirectShow Filter 설치. 4.3 프로그램실행... 4.4 프로그램종료... 12 12 13 14 15 2
목차 4.5 Play / Stop. 4.6 Resolution Setting.... 4.7 Fitting Window... 4.8 Image Signal Processor.. 4.9 Snapshot... 4.10 OpenCV... 4.11 Program Info... 16 17 19 20 22 23 25 5. API 설명 5.1 HVR_Set_ISP... 5.2 HVR_Set_ISP2. 5.3 BmpSmoothingMask 5.4 BmpContrast. 5.5 BmpThreshold.. 5.6 BmpSharpening 5.7 CB_Init... 26 26 27 28 29 30 31 32 6. Sample Source 설명 33 7. 기타문의사항 38 3
1. 개요 본문서는멀티비젼카메라를이용하기위한사용자의이해를돕기위해만든문서로 하드웨어구성, 소프트웨어구성, 프로그램개발에대한설명을나열하였습니다. 기타추가적인질문사항이있으시면아래와같은방법으로문의하시기바랍니다. 혼텍주소 : 경기도성남시중원구상대원동 SKn테크노파크테크동 810호전화 : 031-776-3897, 3899 팩스 : 031-776-3898 홈페이지 : http:// 4
2. Multi Vision Camera Specification 2.1 General feature PC Interface Sensor video data format Sensor command interface Compression Image Processing Multi-Camera connect USB 3.0 (5Gbps) 8bit Bayer I2C protocol 압축안함 Host 프로그램구현또는센서 ISP 컨트롤가능동일 PC 최대 4대연결가능 2.2 PC Requirements CPU Pentium4 2.8GHz 이상 (3.0GHz 이상추천 ) RAM USB 3.0 Host Controller Operating System 2GB 이상 Intel Controller chip 권장 Windows 2000 SP4 이상 / WindowsXP SP2 이상 Windows Vista / Windows 7 5
30 Φ29.5 HTC-3500 Series Vision Camera 2. Multi Vision Camera Specification 2.3 HTC-3500CB - Contents HTC-3500CB 3.0 Camera User s manual / Program CD Micro USB 3.0 Cable (3M) Trig/Strobe 원형 Cable (4Pin) 2.4 HTC-3500CB - Dimension and Description Camera Body Size : 30(w) x 30(h) x 53(D) mm 53.65 30 11.65 42 <HTC-3500CB Camera> 6
2. Multi Vision Camera Specification 2.5 HTC-3500CB - Camera Interface POWER LED TRIG/STROBE Connector USB 3.0 Connector 2.6 HTC-3500CB - Trigger / Strobe Connector Port Pin Signal Name 1 4 2 3 1 Trigger + 2 Trigger - 3 Strobe + 4 Strobe - <Camera Side> * Wire Color 1 : Red 2 : Black 3 : Green 4 : White 7
2. Multi Vision Camera Specification 2.7 HTC-3500CB - Electrical Operating Condition <Trigger> <Strobe> 8
2. Multi Vision Camera Specification 2.8 HTC-3500R - Contents HTC-3500R 3.0 Camera USB 3.0 A/B Cable (3M) User s manual / Program CD 2.9 HTC-3500R - Camera Interface 동작 LED POWER LED USB 3.0 Connector 9
2. Multi Vision Camera Specification 2.10 HTC-3500R - Dimension and Description <HTC-3500R Camera> 10
3. 개발환경 3.1 개발요구사항 운영체제 : Microsoft Windows 2000 SP4 이상, WindowsXP SP2 이상, Windows Vista, Windows 7 컴파일러 : Visual C++ 6.0 기타 : DirectX SDK 3.2 Development Architecture 개발프로그램 (Amcap) MVCLibV11.dll DirectShow Windows USB3.0 Vision Camera 11
4. Software Architecture 4.1 장치관리자 카메라를연결하면 장치관리자 => 이미지장치 에다음과같이나타납니다.(OS 에따 라다른이름으로나타날수있습니다 ) Fig 1. 장치관리자 12
4. Software Architecture 4.2 DirectShow Filter 설치 멀티비젼카메라를사용하기위해서는 DirectShow Filter 를설치해야합니다. FilterSetup.exe 를실행하고 Register 버튼을클릭하시면자동으로필터가설치됩니다. Fig 2. FilterSetup.exe Fig 3. 필터등록 Fig 4. 필터등록해제 13
4. Software Architecture 4.3 프로그램실행 멀티비젼프로그램을실행시키면다음과같은화면이나타난다. Fig 5. 메인화면 14
4. Software Architecture 4.4 프로그램종료 사용프로그램을종료합니다. Fig 6. 프로그램종료 Fig 7. 종료메시지 Exit 버튼을선택하거나, Exit 메뉴를선택하면프로그램종료확인창이 나타나며, 이때확인버튼을선택하면프로그램이종료됩니다. 15
4. Software Architecture 4.5 Play / Stop 영상을 Play 하거나 Stop 할수있습니다. Fig 8. Play Fig 9. Stop Play : 카메라를동작시킨다. Stop : 카메라의동작을멈춘다. 16
4. Software Architecture 4.6 Resolution Setting 해상도를변경하거나 Vblank, Hblank 를변경한다. Fig 10. Resolution Fig 11. Vblank, HBlank Vblank, Hblank : 영상프레임사이에간격을주어컴퓨터에서영상을 처리할수있는시간을준다. Default Button : Vblank 와 Hblank 를기본값으로설정한다. 17
4. Software Architecture 4.6 Resolution Setting 해상도를변경하거나 Vblank, Hblank 를변경한다 해상도 Width X Height QSXGA 2592 X 1944 QXGA 2048 X 1536 SXGA 1280 X 1024 XGA 1024 X 768 SVGA 800 X 600 VGA 640 X 480 Fig 12. Resolution Setting 해상도를변경하면센서로부터나오는영상의크기가변경됩니다. 18
4. Software Architecture 4.7 Fitting Window 영상을화면크기에맞춥니다. Fig 13. Resolution Fitting Window 를선택하면카메라영상을화면의크기에맞추어 화면에출력합니다. 19
4. Software Architecture 4.8 Image Signal Processor 이미지에효과를추가한다. Fig 14. ISP 이미지에 Gain, Brightness, Contrast, Sharpeness 등의효과를추가 한다. 20
4. Software Architecture 4.8 Image Signal Processor 이미지에효과를추가한다 Fig 15. ISP Control Gain : 카메라로부터입력되는영상의 GAIN 에대한가중치를설정 Brightness : 밝기값설정 Contrast: 대비값설정 Smoothing : 화면을매끄럽게만든다. Threshold : 한계점설정 Exposure Time : 노출시간설정 Shutter Delay : 이미지사이의간격 Flip : 뒤집기효과 Mirror : 거울효과 Trigger : 신호가있어야만카메라로부터영상을받을수있다. Default: 기본값으로설정한다. ReadReg, WriteReg : 센서세팅값을확인, 변경 21
4. Software Architecture 4.9 Snapshot 정지영상을저장한다. Fig 16. Snapshot 정지영상을저장한다. 저장형식 : bmp, jpg 22
4. Software Architecture 4.10 OpenCV OpenCV 함수를이용하여영상을출력한다.. Fig 17. Snapshot OpenCV 함수를이용하여영상을처리한다. 23
4. Software Architecture 4.10 OpenCV OpenCV 이미지에효과를추가한다 Fig 18. ISP Control Edge-canny : Canny Edge 외곽선추출 Blur : 영상을흐릿하게만듬 24
4. Software Architecture 4.11 Program Info 프로그램에대한정보를보여준다. Fig 19. Program Info 25
5. API 설명 5.1 HVR_Set_ISP 카메라의설정값을변경한다.. 구분내용 Syntex HVR_Set_ISP(IAMCameraControl *pcameracontrol, int mode, LONG lvalue, LONG *lmin, LONG *lmax, LONG *lstep, LONG *gdrvindex, LONG *lpropertyrangeflags); Parameter pcameracontrol 카메라컨트롤핸들 Return Value mode lvalue 4: ExposureTime 5: Shutter Delay 6: Hblank 7: Vblank 8: Trigger 9: 연결 USB Speed 각모드값 lmin Gain 최소값 (mode 9 에서만사용 ) lmax Gain 최대값 (mode 9 에서만사용 ) lstep Gain 증분값 (mode 9 에서만사용 ) gdrvindex lpropertyrangeflags 제어방식 ( 자동, 수동 ) USB Speed (gdrvindex / 0x10) (mode 9 에서만사용 ) Sample gcap.pvcap- >QueryInterface(IID_IAMCameraControl,(void**)&pCameraControl); HVR_Set_ISP(pCameraControl, 6, lhblank, 0, 0, 0, 0, 0); 26
5. API 설명 5.2 HVR_Set_ISP2 비디오설정값을변경한다.. 구분내용 Syntex HVR_Set_ISP2(IAMVideoProcAmp *pcameracontrol, int mode, LONG value, LONG lvalue); Parameter pcameracontrol 비디오컨트롤핸들 Return Value mode value lvalue 9: Gain Gain 값 0(Reserved) Sample gcap.pvcap- >QueryInterface(IID_IAMVideoProcAmp,(void**)&pVideoControl); HVR_Set_ISP2(pVideoControl, 9, lawb_r, 0); 27
5. API 설명 5.3 BmpSmoothingMask 영상에 Smooth 효과를준다.. 구분내용 Syntex BmpSmoothingMask(BYTE *pbuf, LONG lmsmoothing); Parameter pbuf 영상데이터가들어있는버퍼의포인터 Return Value lmsmoothing Matrix 값 (1 ~ 4) Sample BmpSmoothingMask(pRGBBuffer1, lmsmoothing, IMAGESIZE_X, IMAGESIZE_Y); 28
5. API 설명 5.4 BmpContrast 영상에밝기값과대비값을변경한다. 구분 내용 Syntex BmpContrast(BYTE *CBBuf, BYTE *pbuf, double Brightness, double Contrast); Parameter CBBuf 영상데이터가들어있는버퍼의포인터 Return Value pbuf Brightness Contrast 효과를적용한영상데이터를저장할버퍼 밝기값 대비값 Sample BmpSmoothingMask(pRGBBuffer1, lmsmoothing, IMAGESIZE_X, IMAGESIZE_Y); 29
5. API 설명 5.5 BmpThreshold 영상에한계점효과를준다. 구분 내용 Syntex BmpThreshold(BYTE *pbuf, DWORD lmthreshold, unsigned int nwidth, unsigned int nheight); Parameter pbuf 영상데이터가들어있는버퍼의포인터 Return Value lmthreshold nwidth nheight 한계점값 영상의폭 영상의너비 Sample BmpThreshold(pRGBBuffer1, lmthreshold, IMAGESIZE_X, IMAGESIZE_Y); 30
5. API 설명 5.6 BmpSharpening 영상의선명도를변경한다. 구분 내용 Syntex BmpSharpening(BYTE *pbuf, LONG lmsharpening, unsigned int nwidth, unsigned int nheight); Parameter pbuf 영상데이터가들어있는버퍼의포인터 Return Value lmsharpening 선명도 (1 ~ 5) nwidth nheight 영상의너비 영상의높이 Sample CB_Init(nlmBrightness, nlmcontrast, CBBuf); 31
5. API 설명 5.7 CB_Init 영상의밝기값과대비값처리를위해초기작업을수행한다. Syntex 구분 내용 CB_Init(double Brightness, double Contrast, BYTE *CBBuf); Parameter Brightness 밝기값 Return Value Contrast CBBuf 대비값 영상데이터가들어있는버퍼의포인터 Sample CB_Init(nlmBrightness, nlmcontrast, CBBuf); 32
6. SAMPLE Source 설명 Amcap 프로그램을기본으로제작되었습니다. Amcap.cpp : DirectShow의메인함수가모인파일로필터생성, 프리뷰, 각메뉴처리등, 주요기능을담당하고있는파일입니다. 1. INIReadStringVision : ini 파일에서필요한정보를읽어오는함수 LPCTSTR lpappname : 값을가져올키가속해있는 [ 섹션 ] 의문자열 LPCTSTR lpkey : 값을가져올키 LPCSTR lpdefault : 해당되는값이없을경우, 기본값으로리턴할문자열 LPTSTR lpreturn : 문자열을리턴할 String DWORD nsize : 가져올키값의길이 2. INIWriteStringVision : ini 파일에필요한정보를저장하는함수 LPCTSTR lpappname : 값을저장할키가속해있는 [ 섹션 ] 의문자열 LPCTSTR lpkey : 값을저장할키 LPCSTR str : 저장할문자열 3. AppInit : 프로그램시작시실행되는함수 HINSTANCE hinst : 현재의인트턴드핸들값 HINSTANCE hprev : 이전의인트턴드핸들값 int sw : 윈도우를화면에출력하는방법 33
6. SAMPLE Source 설명 4. AppWndProc : 윈도우메시지를처리하는함수 HWND hwnd : 윈도우핸들 UINT msg: 메시지넘버 WPARAM wparam : message-dependent LPARAM lparam : message-dependent 5. ResizeWindow : 윈도우의크기를변경하는함수 int w: 윈도우의폭 int h: 윈도우의높이 6. BuildPreviewGraph : Preview graph 를 build하는함수 7. StartPreview : 미리보기기능수행함수 8. StopPreview : 미리보기기능중지함수 9. ChooseDevices : 선택된카메라를초기화하는함수 IMoniker *pmvideo : 비디오모티커인터페이스 IMoniker *pmaudio: 오디오모티커인터페이스 10. AppCommand : 메뉴처리함수 HWND hwnd : 윈도우핸들 UINT msg: 메시지넘버 WPARAM wparam : message-dependent LPARAM lparam : message-dependent 34
6. SAMPLE Source 설명 11. ISP_Function : ISP 처리함수 HWND hwnd : 윈도우핸들 12. Resolution : 해상도변경함수 HWND hwnd : 윈도우핸들 13. ISPProc : ISP Control 다이알로그처리함수 HWND hwnd : 윈도우핸들 UINT msg: 메시지넘버 WPARAM wparam : message-dependent LPARAM lparam : message-dependent 14. FrameProc: Vblank, Hblank 해상도를설정하는다이알로그처리함수 HWND hwnd : 윈도우핸들 UINT msg: 메시지넘버 WPARAM wparam : message-dependent LPARAM lparam : message-dependent 15. Read_User_Control_Set : 미지저장한 Control 값들을적용 35
6. SAMPLE Source 설명 SampleGrabberCB.cpp : 카메라에서프로그램으로영상데이터가전달되면이벤트가발생하며, 버퍼로전달되는데이터를필요에따라가공하거나, 화면에출력할수있는파일입니다. 1. RawToBmp : Raw 데이터를 Bmp포맷으로변경 BYTE *prawbuffer : Raw 데이터가저장된버퍼의포인터 BYTE *pbmpbuffer : Bmp 데이터를저장할버퍼의포인터 int width : 영상의폭 int height : 영상의높이 2. CSampleGrabberCB::BufferCB : 영상데이터가들어왔다는이벤트를받는함수 double SampleTime : 시간 BYTE *pbuffer : 영상데이터버퍼포인트 long lbufferlen : 영상데이터의길이 3. DisplayImage : 영상을화면에출력하는함수 HDC hdc : 영상을출력할화면의핸들 4. DisplayImage2 : 영상을화면의크기에맞추어서출력하는함수 HDC hdc : 영상을출력할화면의핸들 int ImageXpos : 화면의폭 int ImageYpos : 화면의높이 5. SaveImageToBmpFile : Bmp파일저장함수 36
6. SAMPLE Source 설명 6. DisplayImageToScreen : 영상데이터를화면크기에맞추어서출력 HWND hwnd: 영상데이터를출력할윈도우핸들 int16 img_xsize: 윈도우의폭 int16 img_ysize: 윈도우의높이 7. Display_Thread : 영상데이터를화면에출력하기위한스레드 37
7. 기타문의사항 지금까지설명한드라이버설치방법외, 문의사항이있으시면저희웹카페 [ 혼텍제품자료실 ] [ 제품문의 ] 에글을남겨주시거나, 아래의연락처로 문의하시기바랍니다. 본사 : 경기도성남시중원구상대원동 190-1 SKn 테크노파크테크동 810 호 Phone : 031-776-3897, 3899 Fax : 031-776-3898 Homepage : http:// E-Mail : hontek@hontek.co.kr 38