[問題] 關於使用C#編寫影像處理程序的效能

作者: zel (柚植)   2014-08-09 00:48:38
因為在學校時只碰過MATLAB,在工作時也只接觸過C#沒碰過其他語言,所
以最近工作上碰到影像處理問題時也嘗試著用C#編寫.dll檔供設備測試
使用.
因為公司同事之前都是用LabVIEW撰寫設備控制介面,手邊資源找不到一
個標準可以參考, 網路上也找不到相關資訊. 所以想請教有相關經驗的
前輩, 如果對一張接近5M大小的8bit灰階圖片(2560*1800),做自動二值
化(我是使用Otsu法)所花費的時間大概是多少呢?
我把stopwatch擺在進入程序前後進行統計, 電腦CPU是Celeron G540雙
核 2.5GHz. 結果運算時間居然要耗費約10ms......... Orz
這個還是在release mode build成exe檔的執行速度...
不知道是不是因為使用C#編寫所以執行效率低落..?
還是說其實正常速度不是這樣, 是我要重新檢查我的撰寫邏輯?(如果是
這樣就太棒了!! 代表我不用換語言編寫...囧>)
還忘有經驗的前輩能給予指點, 感恩m(_ _)m
作者: Abbee (阿比)   2014-08-09 20:46:00
你用指標寫嗎?
作者: zel (柚植)   2014-08-09 20:51:00
是的,用byte* 去讀影像陣列
作者: Abbee (阿比)   2014-08-09 23:40:00
用Otsu法抓閾值, 應該花了不少時間吧~不能換別種法算閾值嗎?
作者: zel (柚植)   2014-08-10 00:26:00
目前是有備案的,不過是需要設參數的方法。
作者: Abbee (阿比)   2014-08-10 08:47:00
你可以先把圖縮到十分之一大小再找閾值,這樣應該會快很多
作者: zel (柚植)   2014-08-10 11:55:00
對吼!降階對灰階分佈比例影響應該不大
作者: Litfal (Litfal)   2014-08-11 13:31:00
但resize還不是需要開銷 = = 如果只用一次好像沒什麼必要
作者: zel (柚植)   2014-08-11 20:06:00
我是沒先resize,在指標尋值時固定跳個range取值。雖然這樣也會增加運算量,但是實測的結果感覺還好。另外閥值搜結果有時會差很多,我的case是後續還有其他步驟所以影響小但如果要直接用這張圖的資訊做分析的話可能就要考慮一下實測的一點小心得還有整個運算最花時間的部分是紀錄灰階直方圖

Links booklink

Contact Us: admin [ a t ] ucptt.com