资源简介
需要一款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\Datafr
文件 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个文件信息
- 上一篇:redis3.2 版本
- 下一篇:全国手机号码前缀匹配的归属地
相关资源
- KCF改进后的代码
- trackinfo_20130721.txt.zip
- Google GPS轨迹记录软件 MyTracks源码整理
- 基于ROS+kcf算法 读取电脑自带摄像
- Design and Analysis of Modern Tracking Systems
- CRectTracker
- 基于opencv实现 LK跟踪算法
- Estimation With Applications to Tracking and N
- L1最小化的视觉跟踪 论文 代码详细解
- __EstimationwithApplicationstoTrackingandNavig
- TestTrack Pro 7.5.4及注册机
- 视频目标跟踪数据集VOT2013-源自官网
- 目标跟踪OTB工具箱修改代码,可计算
- KCFECO_HC.DSST等十种算法在OTB100的TRESR
- Kinect v2 Examples with MS-SDK and NuitrackSDK
- 相关滤波目标跟踪循环移位样本可视
- Audiotrack
- 基于K最短路径的多目标跟踪算法Mul
- TargetTrackingPADF3
- nsf格式芯片音乐播放系统
- 基于STC 51单片机的智能循迹小车
- meanshift跟踪算法及源码
- MPPtrackIref.m
- OptiTrack Motive Guide
- Face-tracking.zip
- opencv团块跟踪 blobtracking
- GPStrackingGeneral1009A.slx
- 导航猫破解补丁Navicatrack
- BT3 各种版本地址 BackTrack_3_Final
- imagenet-vgg-m-2048
评论
共有 条评论