对比使用C# unsafe代码和OpenCV进行图像处理的效率(下)

本文对比了C# unsafe代码和OpenCV在图像处理中的效率,指出由于OpenCV的单线程运算和C# TPL的多线程优势,在不同核心数的CPU上,两者性能表现差异显著。在4核CPU上,C#与OpenCV比例约2:1,而在双核CPU上则为5:1。令人惊讶的是,在Mul方法测试中,C#代码在第一台电脑上以1:2的比率胜过OpenCV。
摘要由CSDN通过智能技术生成

        方便起见,下面再贴一下上次的对比结果:

        1、


        2、




        注意:由于上面两次比较不在同一系统上,Stopwatch.Frequency的值可能不同,故这两次的结果之间不具有可比性!!


——————————————————————————————————————————————————————

        先分析下Add/Sub两个方法,在Image类里使用的是指针+TPL(.NET 并行任务库),使用Parallel.For方法对每一行进行循环,这个应该很容易看懂,就不多讲了。下面来看下OpenCV是如何实现的:

    

//文件:opencv\modules\core\src
void cv::add( InputArray src1, InputArray src2, OutputArray dst,
          InputArray mask, int dtype )
{
    arithm_op(src1, src2, dst, mask, dtype, addTab );
}

void cv::subtract( InputArray src1, InputArray src
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值