基于1394總線的工æ¥ç›¸æ©Ÿåœ–åƒé‡‡é›†ç¨‹åºè¨è¨ˆ
時間:2009-12-11 10:30:37來æºï¼šlimin
導語:?通éŽå°ç›®å‰å…©ç¨®åœ–åƒé‡‡é›†æ–¹æ³•的比較,指出以數碼相機組åˆPC機進行圖åƒé‡‡é›†çš„å„ªé»žã€‚åŒæ™‚,在分æžäº†IEEE1394總線標準的功能和特點åŽï¼Œæç¤ºäº†1394總線在圖åƒé‡‡é›†æ–¹é¢çš„優越性能。
[b]0 引言
[/b] ç›®å‰ï¼Œä»¥CCDæŠ€è¡“ç‚ºæ ¸å¿ƒçš„åœ–åƒç²å–è¨å‚™å¯ä»¥åˆ†ç‚ºå…©é¡žï¼š
1)由
CCDæ”åƒé ã€åœ–åƒé‡‡é›†å¡å’Œè¨ˆç®—機組æˆçš„圖åƒé‡‡é›†ç³»çµ±ï¼Œåˆ©ç”¨åœ–åƒé‡‡é›†å¡æŠŠCCD傳來的模擬圖åƒä¿¡è™Ÿè½‰æ›ç‚ºæ•¸å—圖åƒä¿¡è™Ÿå¹¶å‚³é€çµ¦è¨ˆç®—機處ç†ï¼›
2)由CCD相機本身帶有的數å—化è¨å‚™ç›´æŽ¥å°‡æ•¸å—圖åƒä¿¡è™Ÿé€šéŽç«¯å£å‚³é€çµ¦è¨ˆç®—機。
å…¶ä¸å‰è€…作為經典的圖åƒé‡‡é›†ç³»çµ±åœ¨åœ–åƒé‡‡é›†çš„æ‡‰ç”¨ä¸ä¸€ç›´å±…于主導地ä½[1],但是,性能較好的采集å¡åƒ¹æ ¼æ˜‚è²´ï¼ŒåŒæ™‚由于需求ä¸åŒï¼Œå¸¸å¸¸éœ€è¦å°é‡‡é›†å¡é€²è¡ŒäºŒæ¬¡é–‹ç™¼ï¼Œè€Œå¤§å¤šé‡‡é›†å¡ç”Ÿç”¢å» å®¶å°è£äº†è‡ªå·±çš„å‡½æ•¸å’ŒéˆæŽ¥åº«ï¼Œå› æ¤åœ¨äºŒæ¬¡é–‹ç™¼æ™‚å°é–‹ç™¼äººå“¡çš„å°ˆæ¥ç´ è³ªè¦æ±‚較高。近年來隨著CCDç›¸æ©ŸæŠ€è¡“çš„ä¸æ–·é€²æ¥ï¼Œä»¥æ•¸ç¢¼ç›¸æ©Ÿç‚ºä»£è¡¨çš„第二類圖åƒé‡‡é›†è¨å‚™ä»¥å…¶æ–¹ä¾¿å¿«æ·ã€é‡‡é›†é€Ÿåº¦å¿«ã€é«˜åˆ†è¾¨çއã€é«˜æ€§åƒ¹æ¯”ç‰ç‰¹é»žå—åˆ°äººå€‘çš„å»£æ³›é—œæ³¨ï¼Œå·²ç¶“åœ¨ä¸€äº›é ˜åŸŸå–得了很好的應用。
å°äºŽç¬¬äºŒé¡ž
圖åƒé‡‡é›†è¨å‚™ï¼Œå› 為是CCD相機直接æä¾›æ•¸å—ä¿¡è™Ÿï¼Œå› æ¤å¯ä»¥ç²å¾—高å“質的圖åƒï¼Œä½†åŒæ™‚,也å°åœ–åƒæ•¸æ“šçš„傳輸速率æå‡ºäº†è¼ƒé«˜çš„è¦æ±‚。一般CCD輸出å¯ä»¥éµå¾ªRS-422ã€RS-644å’ŒIEEE1394ç‰æ•¸å—è¼¸å‡ºæŽ¥å£æ¨™æº–。其ä¸ï¼ŒRS-422的數據傳輸速率比較低,ä¸èƒ½æ»¿è¶³å¤§é‡åœ–åƒæ•¸æ“šå‚³è¼¸çš„è¦æ±‚;而RS-644åœ¨é€²è¡Œå‚³è¼¸æ•¸æ“šæ™‚ï¼Œå¿…é ˆå¤–åŠ åœ–åƒé‡‡é›†å¡ï¼Œé€™æ¨£å°±å¢žåŠ äº†æ•´å€‹ç³»çµ±çš„é€ åƒ¹ã€‚è€ŒIEEE1394ä¸åƒ…èƒ½å¤ æä¾›é«˜é€Ÿçš„æ•¸æ“šé€ŸçŽ‡ï¼Œå…‹æœRS-422æ•¸æ“šå‚³è¼¸é€ŸçŽ‡ä½Žçš„ç¼ºé»žï¼ŒåŒæ™‚在和CCD相連的時候ä¸éœ€è¦å¤–åŠ åœ–åƒé‡‡é›†å¡[2]。
IEEE1394,åˆç¨±FireWire(ç«ç·šï¼‰ï¼Œæ˜¯1987å¹´Appleå…¬å¸ç™¼å¸ƒçš„一個高速串行總線標準。該標準在1995年被電氣與電åå·¥ç¨‹å¸«å”æœƒï¼ˆIEEE)采ç´ï¼Œç¨±ä¹‹ç‚ºIEEE1394。1995å¹´çš„IEEE1394-1995其數據傳輸率為100/200/400Mbps,åŽä¾†å…¶æ”¹é€²ç‰ˆIEEE1394b的數據傳輸率å¯é”到800Mbps,1.6GbpsåŠ3.2Gbps。所以,IEEE1394總線是目å‰ç‚ºæ¢æœ€å¿«çš„串行總線[3]。IEEE1394總線具有如下特點:(1ï¼‰æ•¸å—æŽ¥å£ï¼šæ•¸æ“šä»¥æ•¸å—å½¢å¼å‚³è¼¸ï¼Œä¸éœ€æ•¸æ¨¡è½‰æ›ï¼Œå¾žè€Œé™ä½Žäº†è¨å‚™çš„復雜性,ä¿è‰äº†ä¿¡è™Ÿçš„質é‡ï¼›ï¼ˆ2ï¼‰å³æ’å³ç”¨ï¼›ï¼ˆ3) 速度快,支æŒåŒæ¥å’Œç•°æ¥å…©ç¨®æ•¸æ“šå‚³è¼¸æ¨¡å¼ï¼›ï¼ˆ4) 物ç†é«”ç©å°ï¼Œåˆ¶é€ æˆæœ¬ä½Žï¼Œæ˜“于安è£ï¼›ï¼ˆ5) 價廉?;谶@些特點,1394è¢«å»£æ³›æ‡‰ç”¨äºŽå¤šåª’é«”é ˜åŸŸï¼Œç‰¹åˆ¥æ˜¯
數碼æ”åƒæ©Ÿã€‚
ç›®å‰ï¼ŒæŽ¥è§¸æœ€å¤šçš„æ˜¯å°åœ–åƒé‡‡é›†å¡çš„編程控制,而關于利用第二類圖åƒé‡‡é›†è¨å‚™é€²è¡Œåœ–åƒé‡‡é›†æ™‚çš„ç·¨ç¨‹æ–¹æ³•ä»‹ç´¹å¾ˆå°‘ã€‚å› æ¤ï¼Œæœ¬æ–‡è‘—é‡é—¡è¿°åœ¨VC++平臺下應用基于1394接å£çš„第二類圖åƒé‡‡é›†è¨å‚™é€²è¡Œåœ–åƒé‡‡é›†çš„編程éŽç¨‹ã€‚
1 圖åƒé‡‡é›†ç³»çµ±çš„硬件組æˆåŠé–‹ç™¼å¹³è‡º
本文ä¸åœ–åƒé‡‡é›†çš„硬件組æˆï¼šå·¥æ¥æ•¸ç¢¼ç›¸æ©Ÿï¼Œ1394bå¡å’ŒPC機。在PC機主機的空余PCIæ’æ§½ä¸Šå®‰è£ä¸Šç³»çµ±æ‰€éœ€çš„1394bå¡ï¼Œé€šéŽ1394æŽ¥å£æŠŠç›¸æ©Ÿåœ¨PC機并安è£é©…動程åºï¼Œé€™æ¨£ï¼Œæœ¬ç³»çµ±æ‰€éœ€è¦çš„硬件環境就完æˆäº†ã€‚
使用的系統平臺時Windows 2000,開發環境時Microsoft VC++6.0。
[b]2 圖åƒé‡‡é›†çš„實ç¾
[/b] 圖åƒé‡‡é›†ç³»çµ±çš„編寫,主è¦å…§å®¹åŒ…括:人機交互界é¢ã€å¾žCCD相機接收圖åƒä¿¡è™Ÿå¹¶ä¿å˜ã€åœ–åƒåœ¨é‡‡é›†ç•Œé¢é¡¯ç¤ºåŠå°ç›¸æ©Ÿçš„æŽ§åˆ¶ã€‚以下將å°å…¶é€ä¸€é—¡è¿°ã€‚
2.1 建立采集界é¢
å°äºŽé‡‡é›†ç•Œé¢ï¼Œå¯ä»¥å‰µå»ºç‚ºå°è©±æ¡†å½¢å¼ï¼Œä¹Ÿå¯ä»¥é‡‡ç”¨æ–‡æª”çµæ§‹ï¼Œæœ¬æ–‡é‡‡ç”¨åŽè€…:
1)生æˆä¸€å€‹MFC AppWizard(exeï¼‰å¤šæ–‡æª”æ‡‰ç”¨ç¨‹åºæ¡†æž¶ï¼ˆæ‡‰ç”¨ç¨‹åºå稱:PictureTest)。
2ï¼‰é€£æŽ¥ç›¸æ©Ÿçš„å‹•æ…‹éˆæŽ¥åº«ï¼ˆå› ç‚ºè¦æŽ§åˆ¶ç›¸æ©Ÿé‡‡åœ–ï¼Œæ‰€ä»¥æœƒç”¨åˆ°ç›¸æ©Ÿçš„åº«å‡½æ•¸ï¼‰ã€‚æ‰¾åˆ°ç›¸æ©Ÿå®‰è£çš„目錄文件,把includeæ–‡ä»¶å¤¾çš„æ–‡ä»¶è·¯å¾‘åŠ å…¥åˆ°Project->Setting->C/C++->;preprocessor->Additional include directories的編輯框ä¸ï¼›æŠŠlibæ–‡ä»¶å¤¾çš„æ–‡ä»¶è·¯å¾‘åŠ å…¥åˆ°Project->Setting->Link->Input->Additional library path的編輯框ä¸ï¼ŒåŒæ™‚在…->Input->Object/library modules編輯框ä¸è¼¸å…¥pgrflycapture.lib pgrflycapturegui.lib。
3)包å«ç›¸æ©ŸæŽ§åˆ¶é¡žçš„é æ–‡ä»¶ï¼Œåœ¨å·¥ç¨‹ä¸çš„CPictureTestDoc.h文件ä¸åŠ å…¥é æ–‡ä»¶ï¼š
#include
#include
并定義共有變é‡ï¼š
FlyCaptureContext context; //ç›¸æ©ŸåŠŸèƒ½å¥æŸ„
CameraGUIContext m_guicontext; //圖形用戶界é¢ï¼ˆGUIï¼‰å¥æŸ„
4)用相機采圖時,首先需è¦å°å…¶åˆå§‹åŒ–ï¼Œé€™éƒ¨åˆ†å·¥ä½œæˆ‘å€‘å¸Œæœ›åœ¨æ‡‰ç”¨ç¨‹åºæ‰“開時由系統自己完æˆã€‚在工程ä¸çš„CPictureTestDoc.cpp文件ä¸å°ç›¸æ©Ÿé€²è¡Œåˆå§‹åŒ–:
é¦–å…ˆï¼Œåœ¨æ§‹é€ å‡½æ•¸ä¸å°å®šç¾©çš„åŠŸèƒ½å¥æŸ„åˆå§‹åŒ–:
context=NULL; //ç›¸æ©ŸåŠŸèƒ½å¥æŸ„åˆå§‹åŒ–
m_guicontext=NULL; //圖åƒç”¨æˆ¶ç•Œé¢å¥æŸ„åˆå§‹åŒ–
ç„¶åŽï¼Œåœ¨OnNewDocument()函數ä¸é€£æŽ¥ç›¸æ©Ÿå¹¶åˆå§‹åŒ–:
flycaptureCreateContext( &context );//連接相機
guierror=pgrcamguiCreateContext( &m_guicontext );//創建GUI連接
flycaptureInitialize( context, _CAMERA_INDEX );//相機åˆå§‹åŒ–
2.2 åœ–åƒæŠ“å–
在一些自動化系統ä¸ï¼Œå¯èƒ½åœ¨å¤šè™•ç”¨åˆ°æŠ“åœ–ä»£ç¢¼ï¼Œå› æ¤ç‚ºå¢žå¼·ç¨‹åºçš„å¯è®€æ€§ï¼Œæ¸›å°‘ç·¨ç¨‹ä»£ç¢¼ï¼Œæˆ‘å€‘ç·¨å¯«ä¸€å€‹åŠŸèƒ½å‡½æ•¸ï¼Œç”±å®ƒä¾†å®ŒæˆæŠ“åœ–å¹¶ä¿å˜åŠŸèƒ½ï¼Œé€™æ¨£åœ¨éœ€è¦çš„æ™‚候,直接調用函數å³å¯ã€‚在CPictureTestDoc.cpp文件ä¸åŠ å…¥åŠŸèƒ½å‡½æ•¸PictureGrab(),用它來實ç¾åœ–åƒæŠ“å–ï¼Œå…¶æ ¸å¿ƒä»£ç¢¼å¦‚ä¸‹ï¼š
flycaptureStart( context,
FLYCAPTURE_VIDEOMODE_ANY,
FLYCAPTURE_FRAMERATE_ANY );//相機開啟,其ä¸ä¸‰å€‹åƒæ•¸åˆ†åˆ¥ç‚ºï¼šç›¸æ©ŸåŠŸèƒ½å¥æŸ„ï¼Œè¦–é »æ¨¡å¼ï¼Œå¹€é »
flycaptureGrabImage2( context, &image );//抓圖,image是圖åƒåœ¨å…§å˜ä¸çš„å˜æ”¾åœ°å€
flycaptureConvertImage( context, &image, &imageConverted );//åœ–åƒæ ¼å¼è½‰æ›ï¼ŒimageConverted為轉æ›åŽåœ–åƒåœ¨å…§å˜ä¸çš„地å€
flycaptureSaveImage(context,&imageConverted,("TestPicture.bmp"),SAVE_FORMAT_C );//ä¿å˜åœ–åƒï¼ŒTestPicture.bmp為圖åƒä¿å˜å稱,SAVE_FORMAT_C為圖åƒä¿å˜æ ¼å¼ï¼Œå³BMPæ ¼å¼
flycaptureStop( context );//åœæ¢ç›¸æ©Ÿ
通éŽä¸Šè¿°ç¨‹åºæŠ“到的圖åƒï¼Œä¿å˜åœ¨æœ¬å·¥ç¨‹æ–‡ä»¶å¤¾ä¸ï¼Œé€™æ¨£ï¼Œåœ¨åŽçºŒçš„圖åƒè™•ç†æ™‚,å¯ä»¥åœ¨ç¨‹åºä¸ç›´æŽ¥é€šéŽæ–‡ä»¶å訪å•åœ–åƒæ–‡ä»¶ï¼Œè€Œä¸éœ€è¦æ·»åŠ è·¯å¾‘ï¼Œç°¡åŒ–äº†ç¨‹åºä»£ç¢¼ã€‚
2.3 圖åƒé¡¯ç¤º
Windowsä½åœ–由兩種:DDBå’ŒDIB。å‰è€…ä¾è³´äºŽè¨å‚™ï¼ˆDevice Dependent Bitmap),與MFC 6.0ä¸çš„CBitmapé¡žç›¸å°æ‡‰ï¼Œå®ƒå€‘在內å˜ä¸çš„çµæ§‹å’Œä½ç½®ä¾è³´äºŽç®¡ç†å®ƒå€‘çš„è¨å‚™é©…動。DIBæ˜¯ä¸€ç¨®â€œæ ¼å¼â€ï¼Œå®ƒå¯ä»¥å˜æ”¾åœ¨å…§å˜ä¸ï¼Œä¹Ÿå¯ä»¥å˜å„²æˆæ–‡ä»¶ï¼Œå³å¸¸è¦‹çš„BMP文件。Visual C++çš„MFCä¸ï¼Œä»¥CBitmap類代表DDB圖åƒï¼Œæ¥µå¤§åœ°æ–¹ä¾¿äº†ç·¨ç¨‹äººå“¡å°DDB的使用。然而通常情æ³ä¸‹ï¼Œæ²’有人會把DDB圖åƒå˜å„²æˆæ–‡ä»¶ï¼Œå› æ¤æˆ‘們使用更多的是DIBï¼Œéºæ†¾çš„æ˜¯MFCå°äºŽDIB的支æŒå¹¾ä¹Žå¯ä»¥èªªæ˜¯æ²’æœ‰ï¼Œå› æ¤åœ¨ç·¨åˆ¶åœ–åƒè™•ç†çš„ç¨‹åºæ™‚,有必è¦è¨è¨ˆå¯ä»¥é‡å¾©ä½¿ç”¨çš„類CDib,專門用來處ç†DIB[4](關于CDib,讀者å¯ä»¥åƒé–±ç›¸é—œæ›¸ç›®ï¼Œæœ¬æ–‡ä¸å†ç´¯è¿°ï¼‰ã€‚本文ä¸ï¼Œç‚ºäº†æ–¹ä¾¿åŽçºŒçš„圖åƒè™•ç†ï¼Œåœ¨åœ–åƒé¡¯ç¤ºæ™‚采用類CDibæŠ€è¡“ã€‚å› ç‚ºåœ¨å¯¦éš›æ‡‰ç”¨ä¸ï¼Œæˆ‘們往往需è¦åœ–åƒçš„é€£çºŒè®€å…¥ï¼Œå› æ¤æœ¬æ–‡ç›´æŽ¥é‡‡ç”¨æ–‡ä»¶å讀入圖åƒï¼Œé€™æ¨£å¯ä»¥ä½¿é‡‡é›†çš„圖åƒå¯¦æ™‚的顯示。
首先,定義類CDib,并在CPictureTestDoc.hä¸å®šç¾©å…±æœ‰è®Šé‡ï¼š
CDib m_dib;//CDib類å°è±¡ï¼Œç”¨äºŽä½åœ–文件的讀寫
ç„¶åŽï¼Œåœ¨CPictureTestDoc.cppæ–‡ä»¶ä¸æ·»åŠ åŠŸèƒ½å‡½æ•¸ï¼šPictureRead(),在其ä¸åŠ å…¥ä»£ç¢¼ï¼š
CString strPathName;
strPathName = _T("TestPicture.bmp");
if (m_dib.Read(strPathName) == TRUE)
ï½›
SetModifiedFlag(FALSE); // start off with unmodified
return ;
ï½
并在CPictureTestView.cpp文件ä¸çš„OnDraw(CDC* pDC)函數ä¸ï¼ŒåŠ å…¥å¦‚ä¸‹ä»£ç¢¼ï¼š
CPictureTestDoc* pDoc = GetDocument();
CDib *pDib=pDoc->GetPDib();//返回m_dib的指é‡
CSize sizeFileDib = pDib->GetDimensions();//ç²å–DIB的尺寸
pDib->Draw(pDC, CPoint(0, 0), sizeFileDib); //顯示DIB
在OnInitialUpdate()函數ä¸è¨ç½®æ»¾å‹•窗å£ï¼š
CDib *pDib=pDoc->GetPDib();//ç²å–DIB的指é‡
if(pDib!=NULL)
SetScrollSizes(MM_TEXT, pDib->GetDimensions());//æ ¹æ“šDIB尺寸è¨ç½®è¦–窗大å°
最åŽï¼Œæ·»åŠ åœ–åƒé‡‡é›†å‘½ä»¤èœå–®ï¼Œå…¶éŸ¿æ‡‰å‡½æ•¸ç‚ºï¼š
void CPictureTestView::OnTestStart()
ï½›
  CPictureTestDoc * pDoc = GetDocument();
  pDoc->;pictureGrab ();//抓圖
  pDoc->;pictureRead();//把圖åƒè®€å…¥å…§å˜
  OnInitialUpdate();//è¨ç½®æ»¾å‹•窗å£
ï½
ç·¨è¯é€šéŽåŽï¼Œå–®æ“Šåœ–åƒé‡‡é›†å‘½ä»¤ï¼Œå³å¯å¯¦æ™‚ç²å–圖åƒã€‚
[align=center]圖1 圖åƒé‡‡é›†å¯¦ä¾‹
Fig.1 The example of image acquisition[/align]
2.4 相機è¨ç½®
在圖åƒé‡‡é›†æ™‚,我們往往需è¦å°ç›¸æ©Ÿçš„åƒæ•¸å¦‚åœ–åƒæ ¼å¼ã€åˆ†è¾¨çއã€å¹€é »ç‰é€²è¡Œè¨å®šï¼ŒåŒæ™‚,為了ç²å–高å“質圖åƒï¼Œæˆ‘們還需è¦åšç™½å¹³è¡¡èª¿ç¯€ã€‚ç•¶ç„¶ï¼Œé€™äº›åƒæ•¸çš„è¨å®šæˆ‘們å¯ä»¥åœ¨ç›¸æ©Ÿåˆå§‹åŒ–時由代碼實ç¾ï¼Œä½†æ˜¯ï¼Œåœ¨å¯¦é𛿇‰ç”¨ä¸ï¼Œç‚ºäº†é”到最佳效果,我們需è¦å¤šæ¬¡èª¿è©¦æ‰èƒ½é”æˆï¼Œå¦‚果采用修改代碼的方法,調試éŽç¨‹æœƒå¾ˆéº»ç…©ã€‚數碼相機一般都有è¨ç½®èœå–®ï¼Œæˆ‘們è¦åšçš„就是,通éŽä»£ç¢¼ä¾†èª¿ç”¨ç›¸æ©Ÿçš„è¨ç½®èœå–®ï¼Œè¨ç½®å¥½åƒæ•¸åŽï¼Œåƒæ•¸æœƒè‡ªå‹•ä¿å˜å¹¶åŠ è¼‰ã€‚é€™æ¨£ï¼Œèª¿è©¦çš„æ™‚å€™æœƒæ–¹ä¾¿å¾ˆå¤šã€‚å‰µå»ºç›¸æ©Ÿè¨ç½®èœå–®å‘½ä»¤ï¼Œå…¶éŸ¿æ‡‰å‡½æ•¸å¦‚下:
void CPictureTestDoc::OnTestCameraset()
ï½›
pgrcamguiToggleSettingsWindowState(
m_guicontext, AfxGetApp()->m_pMainWnd->GetSafeHwnd() );//相機è¨ç½®å°è©±æ¡†
ï½
[align=center]圖2 ç›¸æ©Ÿåƒæ•¸è¨ç½®ç•Œé¢
Fig.2 Fig. 4.2 Interface for setting the parameter of the camera[/align]
3 çµ è«–
本文實ç¾çš„圖åƒé‡‡é›†ç³»çµ±å¯é€šéŽ1394接å£å°æ•¸ç¢¼æ©Ÿé€²è¡Œæ ¼å¼/模å¼/幀率的è¨ç½®ï¼Œå…‰å¸åƒæ•¸çš„è¨å®šï¼Œé‡‡é›†ç•«é¢çš„å¯¦æ™‚é¡¯ç¤ºï¼Œè€Œä¸”èƒ½å¤ å°æ”åƒæ©Ÿé€²è¡Œè‡ªå‹•控制,系統穩定å¯é ,利用它å¯ä»¥å®Œæˆä¸€äº›å¾©é›œé …ç›®ä¸çš„實時連續的圖åƒé‡‡é›†éŽç¨‹ï¼Œå¦‚高速公路車輛和車牌的自動è˜åˆ¥ç®¡ç†ç³»çµ±ã€å·¥æ¥ç”Ÿç”¢ä¸çš„產å“å¤–åŒ…è£æª¢æ¸¬ç³»çµ±ç‰ï¼Œå…·æœ‰å¾ˆå¤§çš„實用性
致 è¬
æ„Ÿè¬æˆ‘的導師å¾å¿—祥副教授在本論文的撰寫éŽç¨‹ä¸çµ¦äºˆçš„æŒ‡å°Žã€‚
åƒ è€ƒ æ–‡ ç»
[1] 閆守æˆï¼Œå…¨åŽšå¾·ï¼ŒæŽæ“Žï¼ŽWindows環境下的數å—圖åƒé‡‡é›†æŠ€è¡“ç ”ç©¶ï¼Žå¾®è¨ˆç®—æ©Ÿä¿¡æ¯ï¼Œ2006,2(1):252-254.
[2] 畢美è¯ï¼ŒåŠ‰æ–‡æ–‡. 基于VC++6.0çš„IEEE1394 CCD應用程åºé–‹ç™¼. ç¾ä»£é¡¯ç¤º, 2009,3:38-42.
[3] 劉義先,宋申民,陳興林,強文義.基于IEEE1394總線的圖åƒé‡‡é›†è™•ç†ç³»çµ±å¯¦ç¾ï¼ŽæŽ§åˆ¶å·¥ç¨‹ï¼Œ2006,13:110-115.
[4] 陳å¥ï¼ŽVisual C/C++ 編程精é¸é›†éŒ¦ï¼åœ¨Visual C++ä¸å¯¦ç¾è¨å‚™ç„¡é—œä½åœ–類CDib.北京:科å¸å‡ºç‰ˆç¤¾ï¼Œ2003.
Programming of Image Acquisition with Industrial Camera Based on 1394 Bus
LI Xiao-feng ,XU Zhi-xiang
(School of Mechanical Engineering, Dalian University of Technology, Dalian 116024,China)
Abstract: Through comparisons of two image acquisition methods at present, the advantages of combining digital camera with PC to grab image are pointed out. Meanwhile, the paper reveals that IEEE1394 bus has superior performances in image acquisition after analyzing the functions and characteristics of IEEE1394 standard. For this, the programming method and skill to grab image by using device with 1394 digital interface are introduced through concrete examples.
Key words: IEEE1394; VC++; DIB; image acquisition