opencv源码 warpAffine 加速改造 (一)

       最近在做dcm像素任意旋转的时候(没有dcm经验的人,可以理解是图像像素的任意旋转). 旋转是使用了使用 opencv的 Imgproc.warpAffine()方法,但是发现耗时很长,平均在3~4ms左右.作为一个bs产品,提升速度就相当重要了.

   代码层面的优化: 将图像512X512 放大至3000X3000,然后再旋转,这个耗时肯定要比先旋转在放大长. 

  源码上的改造: 目前的opencv源码 4.5.1 版本 和 4.7.0版本;
 (强调 一下 项目是java的,编译的也是生成jar包,下面的测试结果也是调jar得出的结论)

 (测试的都是图片,图片转成Mat,然后旋转的,单位都是 ms)

 一. 4.5.1版本

   正常的编译  ----- 图片旋转(这个时候编出来的是不支持dcm的像素旋转的,缺gdcm模块)

         

正常 + gdcm 模块  ----模块增加了,相应的速度会受到影响

正常 + gdcm + ipp模块 --- ipp是加速库,感兴趣的可以去看一下

正常 + gdcm + 改造 --- 改造后发现速度与加了ipp相差不多 

正常 + gdcm + ipp + 改造 ---- 速度提升很明显,等下在重点说一下改造方法

二.4.7.0版本

 这个版本加了很多3d的库和方法,造成整个模块比较重

正常 + gdcm + ipp ----发现速度比opencv4.5.1版本慢了很多了,这里就没有在比较了

三.weasis-opencv-core3.04 

因为现在项目是使用的dcm4che,其中用到的weasis-opencv-core3.04,这个jar就是调的 opencv模块

看了这个源码内部,调的opencv模块,换上上面编的,是不能直接用的, 猜想可能是内部对opencv进行加速改造(没有相关文档,而且源码调的时候,也是直接调的编好的opencv的dll,其具体细节不太好研究了.

四. weasis-opencv-core4.55 

最新的引入了3d模块,如果技术没有用到新的,升级了可能会变慢(日常基本不咋升级那些第三方,是不是有这个意思呢)

 

下篇就是说具体改造了,可能涉及到代码,比较繁琐,感兴趣的继续下去

  • 17
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值