首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

opencv图像处理代码优化解决思路

2014-01-05 
opencv图像处理代码优化 求各位大神指导,开发环境是opencv,代码执行速度大概是0.7秒左右,这只是对于一帧图

opencv图像处理代码优化
 求各位大神指导,开发环境是opencv,代码执行速度大概是0.7秒左右,这只是对于一帧图片的处理,我处理的是视频流,2秒钟3帧图片,根本就达不到实时性要求,求各位大神指导下,3层for循环的优化,谢谢!!
opencv图像处理代码优化解决思路
row = 480, col = 640, Histbin = 16

[解决办法]

引用:
从并行上思考吧,这种东西让GPU来算,速度会提高成百上千倍

这个不错,图像可以分成上下两部分,起两个线程处理,分配到两个cpu。
速度再提升一倍应该问题不大。

分子部分的计算,完全可以移动到图像循环外部做预处理。

再加上 一些运算 * 和 / 再做一下简化,减少运算量。

再把汇编码 根据不同平台用一些快速的CPU指令优化一下会又有一些提升。

不过无论这种代码上优化的技巧有多高,最终仍然是比不上算法的改进提升的幅度大。

当然算法的改进是最难的。

[解决办法]
引用:
Quote: 引用:

Quote: 引用:

从并行上思考吧,这种东西让GPU来算,速度会提高成百上千倍

试过了并行思考,通过指令#pragma omp parallel for并行执行,可以使程序提高好几倍,


其实还有HSFL之类的给GPU编程的语言,其实GPU的并行能力远强于CPU,你弄的图像处理程序,更是要时时和GPU打交道了

其实你pow(A,2)直接用A*A我估计可以快好多倍,你平方都用pow真是闲得蛋疼啊~
[解决办法]
我觉得这段代码用查表法,起码快100倍。图像处理一般不在内层循环做复杂数值运算

热点排行