如何利用MATROX與BCB做結合擷取影像 |
尚未結案
|
barryHsu
一般會員 發表:55 回覆:49 積分:20 註冊:2005-01-25 發送簡訊給我 |
我有到我購買擷取卡的公司看如何使用MATROX與BCB做結合
1.安裝C Builder以及MIL/MIL-Lite。
2.在MS-DOS模式,進入Matrox Imaging\Mil\Library\Winnt\Msc\Dll目錄,使用Implib.exe重建所有的〝.lib〞檔。例如:Implib-c Mil.lib Mil.dll,其餘依次類推。
3.在程式的Project檔中,加入所使用的library。例如。Uselib〝Mil.lib〞。
4.Project的路徑應加上Matrox Imaging\Mil\Library\Winnt\Msc\Dll。
5.在C Builder的Include路徑中,應加上Matrox Imaging\Mil\Include;而Library的路徑則應加上Matrox Imaging\Mil\Library\Winnt\Msc\Dll。 我有按照他的步驟做,但是我有一點第四項說的那個要加在哪裡呢?不知道是否有人有這樣的經驗,謝謝!!
|
barryHsu
一般會員 發表:55 回覆:49 積分:20 註冊:2005-01-25 發送簡訊給我 |
|
fnk
高階會員 發表:40 回覆:149 積分:102 註冊:2004-01-02 發送簡訊給我 |
|
barryHsu
一般會員 發表:55 回覆:49 積分:20 註冊:2005-01-25 發送簡訊給我 |
|
fnk
高階會員 發表:40 回覆:149 積分:102 註冊:2004-01-02 發送簡訊給我 |
可以附上你的程式嗎..
另外...你在complier和link的過程中...
有沒有出現錯誤呢??? 還有...這裡有一篇參考資料...
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=51059 ===========
有興趣,就能進步
===========
|
barryHsu
一般會員 發表:55 回覆:49 積分:20 註冊:2005-01-25 發送簡訊給我 |
Hello fnk:
你所要的程式碼,是不是我擷取影像的程式呢?
還有我LINK與COMPILER的過程都是無誤的。
可以執行執行檔,但是無法看到影像。
#include |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
HI barryHsu: 程式麻煩請縮排,已經提醒您蠻多次了,縮排方式在版規裡有說明 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=47262
|
fnk
高階會員 發表:40 回覆:149 積分:102 註冊:2004-01-02 發送簡訊給我 |
Hi barryHsu:
Matrox是不支援VFW的...
所以..你不能利用VFW API來寫它的影像擷取程式...
一定要用MIL/MIL-Lite來進行影像擷取...
附上我的程式..(是參考自MIL的範例)...
[visual.h] #include "mil.h" /* Hook data structure. */ typedef volatile struct { MIL_ID *MilImage; MIL_ID MilDigitizer; MIL_ID GrabEndEvent; long NbGrabStart; long NbGrabEnd; double Time; } UserDataStruct; void Initial_MIL(void); void Free_MIL(void); long MFTYPE FrameOneGrabEnd(long HookType, MIL_ID EventId, void MPTYPE *UserStructPtr); [visual.c] #include "visual.h" MIL_ID milapp,milsys1,mildisp1,mildig1,milbuf1,milgra1; unsigned char buf1[480][640]; UserDataStruct UserStruct; void Initial_MIL(void) { long BufSizeX1,BufSizeY1; /* Allocate a MIL application. */ MappAlloc(M_DEFAULT,&milapp); /* Allocate a MIL system. */ MsysAlloc(M_SYSTEM_METEOR_II,M_DEV0,M_DEFAULT,&milsys1); /* Allocate a MIL display. */ MdispAlloc(milsys1, M_DEFAULT, M_DEF_DISPLAY_FORMAT, M_DEFAULT, &mildisp1); /* Allocate a MIL digitizer if supported and sets the target image size. */ MdigAlloc(milsys1, M_DEFAULT, M_DEF_DIGITIZER_FORMAT, M_DEFAULT, &mildig1); MdigInquire(mildig1, M_SIZE_X, &BufSizeX1); MdigInquire(mildig1, M_SIZE_Y, &BufSizeY1); /* Allocate a MIL buffer. */ MbufAlloc2d(milsys1,BufSizeX1,BufSizeY1,8 M_UNSIGNED,M_IMAGE M_DISP M_GRAB M_PROC,&milbuf1); /* Clear the buffer */ MbufClear(milbuf1,0); MdispSelect(mildisp1,milbuf1); MgraAlloc(milsys1,&milgra1); /* Hook function */ MdigHookFunction(mildig1,M_GRAB_FRAME_END,FrameOneGrabEnd,(void *)(&UserStruct)); MdigGrabContinuous(mildig1, milbuf1); } void Free_MIL(void) { MdigHookFunction(mildig1, M_GRAB_FRAME_END M_UNHOOK, FrameOneGrabEnd, (void *)(&UserStruct)); MdigHalt(mildig1); MdigGrabWait(mildig1, M_GRAB_END); MgraFree(milgra1); MbufFree(milbuf1); MdispFree(mildisp1); MdigFree(mildig1); MsysFree(milsys1); MappFree(milapp); } long MFTYPE FrameOneGrabEnd(long HookType, MIL_ID EventId, void MPTYPE *UserStructPtr) { MbufGet2d(milbuf1,0L,0L,640L,480L,buf1); /* but original image into buffer */ return(0); }使用方式.. (1) 將vision.h和vision.c與BCB放在同一個目錄... (2) 再用BCB..include vision.h... (3) 在Form上面拉一個Button...(開始擷取影像) 呼叫"Initial_MIL()"這個副函式.. (4) 在Form上面再拉一個Button...(結束擷取影像) 呼叫"Free_MIL()"這個副函式... (5) 最後利用Add Project..加入你使用Implib.exe.. 所產生出來的Lib檔...希望有幫助..^^ =========== 有興趣,就能進步 =========== |
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
|
barryHsu
一般會員 發表:55 回覆:49 積分:20 註冊:2005-01-25 發送簡訊給我 |
|
Fm
初階會員 發表:19 回覆:66 積分:37 註冊:2003-10-15 發送簡訊給我 |
|
barryHsu
一般會員 發表:55 回覆:49 積分:20 註冊:2005-01-25 發送簡訊給我 |
|
barryHsu
一般會員 發表:55 回覆:49 積分:20 註冊:2005-01-25 發送簡訊給我 |
|
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
|
barryHsu
一般會員 發表:55 回覆:49 積分:20 註冊:2005-01-25 發送簡訊給我 |
|
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
|
barryHsu
一般會員 發表:55 回覆:49 積分:20 註冊:2005-01-25 發送簡訊給我 |
|
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
|
barryHsu
一般會員 發表:55 回覆:49 積分:20 註冊:2005-01-25 發送簡訊給我 |
|
m58610
初階會員 發表:22 回覆:83 積分:36 註冊:2003-09-07 發送簡訊給我 |
等等馬上寄lib給你測試
至於步驟,我以前用4.0時
1.首先要先安裝MIL程式至電腦上
2.安裝結束後,將安裝目錄中INCLUDE裡所有檔案複製到BCB裡的INCLUDE資料夾中
3.再將安裝目錄中LIBRARY所有檔案複製到BCB的LIB資料夾中
4.啟動BCB後,將先前複製的lib檔加入來源之中。也就是你說的第3點
換成7.5後因為我不知道要重建BCB的lib
所以用VC的lib都不能用,只好用4.0的lib,也可以通用
看到你這篇後
除了第4點外我都照用而已
連之前4.0的複製檔案都沒用到,因為第5點已經取代了上述動作吧
|
cudi0915
一般會員 發表:0 回覆:1 積分:0 註冊:2005-04-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |