常用的一些代码:
1.人脸区域显示:
cv::Mat img = gray.getMat(1);
for (auto rect : faceRects)
{
cv::rectangle(img, rect, cv::Scalar(255, 255, 255), 2);
}
imshow("face detection results", img);
cv::waitKey(25);
2.UMat转Mat:
cv::Mat img = gray.getMat(1);
3.cv::Rect
br();//the bottom-right corner
tl();//the top-left corner
4.图像上特定位置写文字
int mark(0);
for (cv::Point2d landmark : landmarks)
{
cv::circle(img, landmark, 1, cv::Scalar(0, 255, 0), 1);
mark++;
string s = to_string(mark);
////第一个坐标表示起始位置,1是大小,2是粗细
cv::putText(image,s, landmark, cv::FONT_HERSHEY_SIMPLEX, 0.2, (200, 255, 255), 0.5, cv::LINE_AA);
}
5.实时检测与视频检测代码
实时检测:
cv::VideoCapture capture;
if (!capture.open(0) && !capture.isOpened())
{
std::cerr << "Can't open camera!" << std::endl;
return;
}
cv::Mat frame;
capture >> frame;
视频检测:
cv::VideoCapture capture(“E:\VideoData\1.avi”);
if (!capture.isOpened())
{
std::cerr << "Can't open " << m_inFile << std::endl;
return;
}
cv::Mat frame;
capture >> frame;