J'ai récemment pris du code qui suivait un objet en fonction de sa couleur en OpenCV c++ et l'a réécrit dans les liens python.
Les résultats globaux et la méthode étaient les mêmes, la syntaxe en moins évidemment. Mais lorsque j'exécute le code ci-dessous sur chaque image d'une vidéo, cela prend presque 2 à 3 secondes, alors que la variante c++, également ci-dessous, est instantanée en comparaison et je peux itérer entre les images aussi vite que mon doigt peut appuyer sur une touche.
Des idées ou des commentaires ?
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;
}
}
Remerciements