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

[AxObject] 於 .net 開發環境, 呼叫 CalculateFeatures() 函式時 "參數溢位" 問題

Q:
當使用者於 .net 開發環境中使用 AxObject 元件求 BestMatch(最小外階矩形)時, 可能會出現 CombinedFeatures 越值溢位問題, 例如:
AxAxObject1.CalculateFeatures(4278190080, -1)  '出現溢位錯誤, 導致執行中斷, 後續程式碼不處理
 

因為 .net(x86) 開發環境使用 int32, 而內建的 "型別轉換" 範圍為 -2,147,483,648 至 2,147,483,647
若直接使用 OVKZOO 提供的 CombinedFeatures 總和值, 就會發生越值溢位問題.

 


A:
以下提供兩種 ".net 環境下越值溢位問題" 解決方式

1. 縮減 CombinedFeatures 總和範圍
如下圖, 只要 CombinedFeatures 涵蓋任一 BestMatch 參數 (如 AX_OBJECT_FEATURE_BEST_MATCH_LIMIT_X1) 即會帶出所有 BestMatch 端點資訊
故, 呼叫 AxAxObject1.CalculateFeatures(50331648, -1), 亦可得到所有 BestMatch 端點資訊

2. 直接關閉編譯環境溢位檢察功能 (以VB.net環境舉例, C#.net 預設關閉)
工具列->專案->專案屬性->編譯->進階編譯選項->勾選 "移除整數的溢位檢查(R)" 

Copyright ©2008 Internet Service by
AISYS Vison company.