Je suis très nouveau sur OpenCV (j'ai commencé à l'utiliser il y a deux jours), j'essaie de couper une image de main à partir d'une image de profondeur obtenue de Kinect, j'ai besoin de l'image de main pour la reconnaissance des gestes. J'ai l'image en tant que cv::Mat
type. Mes questions sont:
cv::Mat
à cvMat
pour pouvoir utiliser la méthode cvGetSubRect
pour obtenir la région d'intérêt?cv::Mat
que je peux utiliser pour obtenir la partie de l'image?Je voulais utiliser IplImage
mais j'ai lu quelque part que cv::Mat
est le moyen préféré maintenant.
Vous pouvez utiliser l'opérateur de fonction surchargé sur cv::Mat
:
cv::Mat img = ...;
cv::Mat subImg = img(cv::Range(0, 100), cv::Range(0, 100));
Consultez la documentation OpenCV pour plus d'informations et pour la fonction surchargée qui prend un cv::Rect
. Notez que l'utilisation de cette forme de découpage crée un nouvel en-tête de matrice, mais ne copie pas les données.
Peut-être qu'une autre approche pourrait être:
//Create the rectangle
cv::Rect roi(10, 20, 100, 50);
//Create the cv::Mat with the ROI you need, where "image" is the cv::Mat you want to extract the ROI from
cv::Mat image_roi = image(roi)
J'espère que cela peut vous aider.