aihot  2017-04-27 20:49:14  OpenCV |   查看评论   
  • // 使用曲率确定的简单指尖检测
  •   
  • #include "opencv2/opencv.hpp"  
  •   
  • using namespace cv;  
  • using namespace std;  
  •   
  • void skinExtract(const Mat &frame, Mat &skinArea);  
  •   
  • int main(int argc, char* argv[])  
  • {  
  •     Mat frame, skinArea;  
  •     VideoCapture capture;  
  •   
  •     capture.open(0);  
  •     if (!capture.isOpened())  
  •     {  
  •         cout<<"No camera!\n"<<endl;  
  •         return -1;  
  •     }  
  •   
  •     while (1)  
  •     {  
  •         capture >> frame;  
  •         //Mat frame = imread("fingertips(1).jpg");  
  •         if (frame.empty())  
  •             break;  
  •   
  •         GaussianBlur(frame, frame, Size(3, 3), 0);  
  •         skinArea.create(frame.rows, frame.cols, CV_8UC1);  
  •         skinExtract(frame, skinArea);  
  •         Mat show_img;  
  •         frame.copyTo(show_img, skinArea);  
  •   
  •         vector<vector<Point> > contours;  
  •         vector<Vec4i> hierarchy;  
  •   
  •         //寻找轮廓  
  •         findContours(skinArea, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);  
  •   
  •         // 找到最大的轮廓  
  •         int index;  
  •         double area, maxArea(0);  
  •         for (int i=0; i < contours.size(); i++)  
  •         {  
  •             area = contourArea(Mat(contours[i]));  
  •  

    除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自简单粗糙的指尖检测方法(FingerTips Detection)

    留言与评论(共有 0 条评论)
       
    验证码:
    [lianlun]1[/lianlun]