【发布时间】:2011-04-02 08:39:05
【问题描述】:
我最近在 OpenCV c++ 中编写了一些基于颜色跟踪对象的代码,并在 python 绑定中重写了它。
总体结果和方法显然是相同的减号语法。但是,当我在视频的每一帧上执行下面的代码时,几乎需要 2-3 秒才能完成,因为下面的 c++ 变体是即时比较的,我可以在帧之间迭代,就像我的手指可以按下一样快键。
有什么想法或方法吗?
cv.PyrDown(img, dsimg)
for i in range( 0, dsimg.height ):
for j in range( 0, dsimg.width):
if dsimg[i,j][1] > ( _RED_DIFF + dsimg[i,j][2] ) and dsimg[i,j][1] > ( _BLU_DIFF + dsimg[i,j][0] ):
res[i,j] = 255
else:
res[i,j] = 0
for( int i =0; i < (height); i++ )
{
for( int j = 0; j < (width); j++ )
{
if( ( (data[i * step + j * channels + 1]) > (RED_DIFF + data[i * step + j * channels + 2]) ) &&
( (data[i * step + j * channels + 1]) > (BLU_DIFF + data[i * step + j * channels]) ) )
data_r[i *step_r + j * channels_r] = 255;
else
data_r[i * step_r + j * channels_r] = 0;
}
}
谢谢
【问题讨论】:
标签: c++ python opencv performance