我在图像中有两个点,左眼中心(X,Y)和右眼中心(X,Y)。我用双眼在双眼周围画了圈cv::circle
,这很好。但我现在想做的是获取我绘制的圆圈的投资回报率,即提取眼睛并将它们保存在新的 Mat 中。
这是我目前的结果:
...但正如我上面所说,只需要将眼睛周围的圆圈提取到一个新的 Mat 中,每只眼睛一个。
这是我的代码:
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);
我找到了以下链接,但我似乎无法理解它们/将它们应用于我想要做的事情:http://answers.opencv.org/question/18784/crop-image-using-hough-circle/ http://answers.opencv.org/question/18784/crop-image-using-hough-circle/
选择区域 OpenCV https://stackoverflow.com/questions/16184267/selecting-a-region-opencv
在 C 中使用 OpenCV 定义图像 ROI https://stackoverflow.com/questions/10632195/define-image-roi-with-opencv-in-c
任何帮助/指导表示赞赏!谢谢你!