Erste ROI aus einem Kreis/Punkt
Ich habe zwei Punkte in einem Bild, Mitte Links-Auge (X, Y) und dem Zentrum des rechten Auges (X, Y). Ich habe gezeichnet, Kreise um beide Augen cv::circle
, und das ist in Ordnung. Aber was ich jetzt versuchen, ist, die Rendite die Kreise, die ich gezogen habe, d.h. extrahieren Sie die Augen, und speichern Sie Sie in eine neue Matte.
Dies ist mein Aktuelles Ergebnis:
...Aber wie oben schon gesagt, nur brauchen, um die Arbeit auf der Extraktion der Kreise um die Augen in eine neue Matte, eins für jedes Auge.
Dies ist mein code:
cv::Mat plotImage;
plotImage = cv::imread("C:/temp/face.jpg", cv::IMREAD_COLOR);
cv::Point leftEye(person.GetLeftEyePoint().X, person.GetLeftEyePoint().Y);
cv::Point rightEye(person.GetRightEyePoint().X, person.GetRightEyePoint().Y);
cv::circle(plotImage, leftEye, 15, cv::Scalar(255, 255));
cv::circle(plotImage, rightEye, 15, cv::Scalar(255, 255));
cv::imwrite("C:\\temp\\plotImg.jpg", plotImage);
Habe ich Folgendes gefunden links, aber ich kann nicht scheinen, um Sinn/anwenden, was ich versuche zu tun:
http://answers.opencv.org/question/18784/crop-image-using-hough-circle/
Auswahl einer Region für OpenCV
Definieren ROI-Bild mit OpenCV in C
Jede Hilfe/Beratung wird sehr geschätzt! Danke!
- wie haben Sie erhalten die Punkte ?
- Ich bin mit SDK Analysen/findet-Zentrum Augen-Punkte. Ich habe meine eigene Klasse Person, die empfängt/setzt diese Werte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
let ' s beschränken, um ein Auge für Einfachheit:
roi.copyTo(plotImage(cv::Rect(person.GetLeftEyePoint().X, person.GetLeftEyePoint().Y, roi.cols, roi.rows)));
croppedEye.copyTo(plotImage(cv::Rect(person.GetLeftEyePoint().X, person.GetLeftEyePoint().Y, croppedEye.cols, croppedEye.rows)));