• 大小: 11.69MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-25
  • 语言: 其他
  • 标签: track  

资源简介

需要一款3d摄像头,项目基于qt5,通过深度图追踪人体手势

资源截图

代码片段和文件信息

// based on http://pastebin.com/EHz2a0YP

#include 
#include 
#include 
#include 
#include 
#include 

#include “Util.h“

using namespace cv;
using namespace std;

//-----------------------------------------------------------------//

cv::Mat image sel src hsv;
Scalar cMin(179255255) cMax(000);
bool selecting = false;
char w1[20] = “Color picker“;
char w2[20] = “Picked color“;
char w3[20] = “Segments“;

//-----------------------------------------------------------------//

void filter()
{
// range based color classification

cv::Mat bw;
cv::inRange(hsv cMin cMax bw);
cv::cvtColor(bw sel CV_GRAY2BGR);
cv::imshow(w2 sel);

// segmentation with opening and contours

cv::RNG rng(12345);
cv::Mat output;

vector > contours;
vector hierarchy;

cv::Mat kernel = getStructuringElement(MORPH_ELLIPSE Size(44));
cv::morphologyEx(bw output MORPH_OPEN kernel);
cv::findContours(output contours hierarchy CV_RETR_LIST CV_CHAIN_APPROX_SIMPLE);

cv::Mat drawing = cv::Mat::zeros(output.size() CV_8UC3);

for(int i = 0; i < contours.size(); ++i)
{
Scalar color = Scalar(rng.uniform(0255) rng.uniform(0255) rng.uniform(0255));
drawContours(drawing contours i color CV_FILLED);

Moments m = moments(contours[i]);
Point2f mp = Point2f(m.m10/m.m00 m.m01/m.m00);
double a = contourArea(contours[i]);

if(a > 2000)
{
Scalar color = Scalar(255255255);
drawContours(drawing contours i color);
line(drawing mp + Point2f(-4-4) mp + Point2f( 4 4) color);
line(drawing mp + Point2f( 4-4) mp + Point2f(-4 4) color);
}
}

imshow(w3 drawing);
}

//-----------------------------------------------------------------//

static void onMouse(int event int x int y int f void *)
{
    std::cout << “## UPDATED“ << std::endl;
    
image = src.clone();
Vec3b pix = hsv.at(yx);

int H = pix.val[0];
int S = pix.val[1];
int V = pix.val[2];

//--

if(event == EVENT_LBUTTONDOWN)
selecting = true;
else if(event == EVENT_LBUTTONUP)
selecting = false;
if(selecting)
{
if(H < cMin[0])
cMin[0] = H;
if(S < cMin[1])
cMin[1] = S;
if(V < cMin[2])
cMin[2] = V;

if(H > cMax[0])
cMax[0] = H;
if(S > cMax[1])
cMax[1] = S;
if(V > cMax[2])
cMax[2] = V;

filter();
}

//--

Scalar bgr = cvc(hsv2rgb(cvc(cv::Scalar(HSV))) true);
rectangle(image Point(35) Point(1315) bgr -1);

stringstream s;
s << “HSV=(“ << H << “ “ << S << “ “ << V << “)“;
putText(image s.str().c_str() Point(1715) FONT_HERSHEY_SIMPLEX .6 Scalar(000) 2);
putText(image s.str().c_str() Point(1715) FONT_HERSHEY_SIMPLEX .6 Scalar(255255255));

//--

bgr = cvc(hsv2rgb(cvc(cMin)) true);
rectangle(image Point(325) Point(1335) bgr -1);

s.str(““);
s.clear();
s << “hsv_min=“ << cMin[0] << “ “ << cMin[1] << “ 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-04-03 15:49  tracker\
     文件        1546  2018-02-13 23:09  tracker\CMakeLists.txt
     目录           0  2018-04-03 12:08  tracker\Data\
     文件        4270  2018-02-13 23:09  tracker\Data\Camera.cpp
     文件        1591  2018-02-13 23:09  tracker\Data\Camera.h
     文件         950  2018-02-13 23:09  tracker\Data\Dataframe.h
     文件        2200  2018-02-13 23:09  tracker\Data\DataStream.cpp
     文件         806  2018-02-13 23:09  tracker\Data\DataStream.h
     文件        1421  2018-02-13 23:09  tracker\Data\SolutionStream.h
     文件        1621  2018-02-13 23:09  tracker\Data\TextureColor8UC3.h
     文件        1890  2018-02-13 23:09  tracker\Data\TextureDepth16UC1.h
     目录           0  2018-04-03 12:08  tracker\DataStructure\
     文件        2071  2018-02-13 23:09  tracker\DataStructure\CustomJointInfo.h
     目录           0  2018-04-03 12:08  tracker\Detection\
     文件       13931  2018-02-13 23:09  tracker\Detection\DetectionStream.h
     文件       41720  2018-02-13 23:09  tracker\Detection\FindFingers.cpp
     文件        4322  2018-02-13 23:09  tracker\Detection\FindFingers.h
     文件        3239  2018-02-13 23:09  tracker\Detection\matlab_helpers.h
     文件       18017  2018-02-13 23:09  tracker\Detection\QianDetection.cpp
     文件        1787  2018-02-13 23:09  tracker\Detection\QianDetection.h
     文件        2900  2018-02-13 23:09  tracker\Detection\TrivialDetector.cpp
     文件         740  2018-02-13 23:09  tracker\Detection\TrivialDetector.h
     目录           0  2018-04-03 12:08  tracker\Energy\
     文件       12208  2018-02-13 23:09  tracker\Energy\Collision.cpp
     文件         902  2018-02-13 23:09  tracker\Energy\Collision.h
     文件        2576  2018-02-13 23:09  tracker\Energy\Damping.cpp
     文件         748  2018-02-13 23:09  tracker\Energy\Damping.h
     文件        1643  2018-02-13 23:09  tracker\Energy\Energy.cpp
     文件         449  2018-02-13 23:09  tracker\Energy\Energy.h
     文件        9111  2018-02-13 23:09  tracker\Energy\Fingertips.cpp
     文件        1808  2018-02-13 23:09  tracker\Energy\Fingertips.h
............此处省略303个文件信息

评论

共有 条评论