光道視覺科技股份有限公司
關於我們 最新消息 產品介紹 下載專區 技術問題 聯絡我們
Sitemap 回首頁 繁體中文 English
技術問題

[SDK] 如何用 "光道視覺攝影機" 配合 "第三方視覺程式庫" 進行系統開發

使用光道視覺 "ALTAIR/CYCLOPS U系列工業攝影機" 與 "OvkLite SDK" 擷取影像是非常簡單的工作。
(以下使用 BCB 為例) 

1. 建立一 OVKLite::AxAltairU 元件, 
    呼叫 "CreateChannel()" 或 "QuickCreateChannel()" 函式即可開啟相機通道,
    並利用 Snap() 或 Live() 函式, 通知相機開始取像。
    AxAltairU1->QuickCreateChannel();  //連接相機
    AxAltairU1->Live();                         //開始連續取像

2. 當 "ALTAIR/CYCLOPS U系列工業攝影機" 工業攝影機每完成了一張影像的擷取,
    AxAltairU 自動發出兩個事件 "OnSurfaceFilled" 和 "OnSurfaceDraw",
    這兩個事件分別都會帶有長整數型態(long)參數SurfaceHandle,
    這個參數即為剛完成擷取的影像代碼(Handle)。

    void __fastcall TForm1::AxAltairU1SurfaceFilled(TObject *Sender,long SurfaceHandle)
    {   //OnSurfaceFilled 事件
        //SurfaceHandle 即為生成的影像代碼
    }

3. 將 SurfaceHandle 影像代碼傳入 AxAltairU::GetImagePtr() 函式獲得影像資料的真實記憶體位址。
    void __fastcall TForm1::AxAltairU1SurfaceFilled(TObject *Sender,long SurfaceHandle)
    {        
        long lpImagePtr = AxAltairU1->GetImagePtr(SurfaceHandle,X,Y);           
        //lpImagePtr 即為影像資料的真實記憶體位址
        //GetImagePtr() 只做記憶體位址轉換, 無資料搬移動作, 只需微秒(µs)以內即完成, 不須擔心效能問題。
    }

4. 將此長整數型態(long)真實記憶體位址送入其它廠牌的視覺程式庫影像容器, 即可進行後續影像分析。

 

註: 關於光道視覺影像資料記憶體格式
      灰階影像: 一個畫素佔據一個Byte;
      彩色影像: 一個畫素佔據三個Byte,排列順序分別為 [藍Blue]、[綠Green]、[紅Red]  
                     (同 Windows Bitmap 的排列格式)

Copyright ©2008 Internet Service by
AISYS Vison company.