[问题] 关于使用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