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

看板C_Sharp (C#)作者 (柚植)時間11年前 (2014/08/09 00:48), 11年前編輯推噓1(1013)
留言14則, 4人參與, 最新討論串1/1
因為在學校時只碰過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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.173.101.139 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1407516523.A.574.html ※ 編輯: zel (218.173.101.139), 08/09/2014 01:00:30

08/09 20:46, , 1F
你用指標寫嗎?
08/09 20:46, 1F

08/09 20:51, , 2F
是的,用byte* 去讀影像陣列
08/09 20:51, 2F

08/09 23:40, , 3F
用Otsu法抓閾值, 應該花了不少時間吧~不能換別種法算閾值嗎?
08/09 23:40, 3F

08/10 00:26, , 4F
目前是有備案的,不過是需要設參數的方法。
08/10 00:26, 4F

08/10 08:47, , 5F
你可以先把圖縮到十分之一大小再找閾值,這樣應該會快很多
08/10 08:47, 5F

08/10 11:55, , 6F
對吼!降階對灰階分佈比例影響應該不大
08/10 11:55, 6F

08/11 13:31, , 7F
但resize還不是需要開銷 = = 如果只用一次好像沒什麼必要
08/11 13:31, 7F

08/11 20:06, , 8F
我是沒先resize,在指標尋值時固定跳個range取值。
08/11 20:06, 8F

08/11 20:06, , 9F
雖然這樣也會增加運算量,但是實測的結果感覺還好。另外閥值
08/11 20:06, 9F

08/11 20:09, , 10F
搜結果有時會差很多,我的case是後續還有其他步驟所以影響小
08/11 20:09, 10F

08/11 20:10, , 11F
但如果要直接用這張圖的資訊做分析的話可能就要考慮一下
08/11 20:10, 11F

08/11 20:11, , 12F
實測的一點小心得
08/11 20:11, 12F

08/11 20:12, , 13F
還有整個運算最花時間的部分是紀錄灰階直方圖
08/11 20:12, 13F

09/09 07:31, , 14F
個人覺得你的pc跑這個時間差不多耶
09/09 07:31, 14F
文章代碼(AID): #1JvFzhLq (C_Sharp)
文章代碼(AID): #1JvFzhLq (C_Sharp)