Mise à jour pour cv::Mat(cv::Rect()) avec OpenCV 2.4

Au détour d’une question sur StackOverflow, j’ai découvert qu’OpenCV 2.4 avait supprimé le mot-clé const de la fonction cv::Mat(cv::Rect()). On peut donc utiliser le résultat de cette fonction comme argument de la fonction copyTo(). La syntaxe suivante est désormais valide :

cv::Mat bigMat(1024, 1024, CV_32FC1);
cv::Mat someSmallData(256, 256, CV_32FC1);
someSmallData.copyTo(bigMat(cv::Rect(xmin, ymin, xmin+256, ymin+256));

Avant, il aurait fallu d’abord créer un objet temporaire (en fait, juste un en-tête pour accéder au bon endroit de bigMat) pour obtenir une cv::Mat non constante, puis copier dans cette matrice temporaire. Un petit changement qui devrait alléger pas mal de codes !

Le billet sur les fonctions constantes a également été mis à jour.

Related