0
我有一個臉部跟蹤程序,可以從相機中讀取視頻,並在人臉周圍繪製矩形。我想要做的是讓程序識別臉部何時進入框架的特定區域,並初始化其他一些動作。我需要執行哪些命令? (我使用C++和OpenCV 2.4.3)在opencv中檢測臉部何時進入ROI
E.g
detect face;
if (face is in ROI)
{
close video feed;
}
我有一個臉部跟蹤程序,可以從相機中讀取視頻,並在人臉周圍繪製矩形。我想要做的是讓程序識別臉部何時進入框架的特定區域,並初始化其他一些動作。我需要執行哪些命令? (我使用C++和OpenCV 2.4.3)在opencv中檢測臉部何時進入ROI
E.g
detect face;
if (face is in ROI)
{
close video feed;
}
所以,你有一個長方形包圍你的臉和定義圖像的ROI的矩形。要檢查面部是否進入ROI,您只需檢查兩個面是否相交。做到這一點的最簡單的方法是如在此(http://docs.opencv.org/modules/core/doc/basic_structures.html#rect)描述使用重載操作者& CV :: Rect_的,然後檢查所得到的矩形的面積爲> 0
一個例子代碼將如下所示:
cv::Rect r1(0, 0, 10, 10);
cv::Rect r2(5, 5, 10, 10);
if ((r1&r2).area())
{
// rects intersect
}
如果你想面對已經進入了投資回報與一定比例,你可以用兩個輸入區的最低限度的比較相交區域:
cv::Rect r1(0, 0, 10, 10);
cv::Rect r2(5, 5, 10, 10);
double minFraction(0.1);
if ((r1&r2).area() > minFraction * std::min(r1.area(), r2.area()))
{
// rects intersect by at least minFraction
}