在做了一些关于OpenCV对象检测的研究和阅读信息后,我仍然不确定如何在视频帧中检测到一根棍子.什么是最好的方式,所以即使用户移动它我也能检测到.我会用棍子作为剑,并用它制作光剑.我可以从哪里开始?谢谢!
嗨,谢谢你的期待!
您知道一些通用遥控器如何"记录"来自OEM遥控器的红外信号吗?我想用Kinect做同样的事情.
在这样做之后,我希望当用户发出语音命令或手势时,我会希望使用声卡中的一系列音调来复制/爆炸红外信号(我有一个红外接收器接受来自耳机插孔的音调并转换它)到IR信号).
我想为多种应用做到这一点:从我的电视遥控器,我的迷你遥控直升机遥控器等录制信号.
以下是使用Kinect和Arduino的相似内容的链接,但如果您有红外"录音机",我认为不一定要这么复杂.
我正在使用Kinect SDK for Windows,C#,.NET 4
假设下面的启发式是合适的(如果你有更好的方法请告诉我),我该怎么做:
在上面的问题中,#1和2是最重要的.
如果我可以为记录器拼凑一个解决方案,我将为所有人打开源代码.如果您希望在发生这种情况时收到有关该来源的通知,请发表评论.
谢谢!
kinect传感器返回的深度值对应于距xy平面的真实世界z距离(以mm为单位).到目前为止,我在最新的sdk中找不到任何返回x和y坐标相似的东西.这是在sdk中提供的吗?如果做不到这一点,那么计算x和y的好方法是什么?
我有一个Kinect应用程序,我可以生成1-4个不同的屏幕点(左手/右手最多2人)我希望能够将每个Point应用程序作为多点触摸消息发送到应用程序.
我目前正在使用SendInput鼠标移动,鼠标按下和鼠标移动消息,但AFAIK,它不支持WM_TOUCH消息.
有谁知道在C#中发送多点触控消息的简单方法?作为测试,我希望能够在MS Paint中使用Kinect,并用双手绘画(以及风的所有颜色)
使用EmguCV,我们使用以下网络摄像头捕获图像:
Capture cap = new Capture(0);
Image < Bgr, byte > nextFrame = cap.QueryFrame();
...
...
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何从我的Kinect中捕获图像,我已经尝试了kinectCapture课程,但它不适用于我.谢谢
我知道如何转换从Joint.Position.X和获得的值的像素Joint.Position.Y.我有一个例子:
void kinectSensor_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
using (SkeletonFrame skeletonFrame = e.OpenSkeletonFrame())
{
if (skeletonFrame != null)
{
Skeleton[] skeletonData = new Skeleton[skeletonFrame.SkeletonArrayLength]; //conterrà tutti gli skeleton
skeletonFrame.CopySkeletonDataTo(skeletonData);
Skeleton playerSkeleton = (from s in skeletonData where s.TrackingState == SkeletonTrackingState.Tracked select s).FirstOrDefault();
if (playerSkeleton != null)
{
Joint rightHand = playerSkeleton.Joints[JointType.HandRight];
Joint leftHand = playerSkeleton.Joints[JointType.HandLeft];
//EDIT: The following formulas used to convert X and Y coordinates in pixels are wrong.
//Please, see the answer for details
rightHandPosition …Run Code Online (Sandbox Code Playgroud) 在我的Kinect项目中,我正在尝试使用Kinect传感器创建点云.当显示3D点时,我会得到一个倾斜的模型,其中墙壁和地板是弯曲的.
编辑:我正在使用微软的Kinect SDK.这个点云是在距离墙壁一两英尺处传感器的情况下产生的.

我正在使用kinect,我需要保存RAW深度图像.这意味着我不应该通过转换为8位来保存它(这就是imwrite正在做的事情!)但是将其保存为16位,而没有任何位深度减少.我希望这个问题不会太微不足道,但我是OpenCV编程的新手.我尝试了以下,但它不起作用:
[...]
Mat imageDepth ( 480, 640, CV_16UC1 );
Mat imageRGB;
// Video stream settings
VideoCapture capture;
capture.open( CAP_OPENNI );
if ( !capture.isOpened() ) {
cerr << "Cannot get video stream!" << endl;
exit ( EXIT_WITH_ERROR );
}
if ( !capture.grab() ) {
cerr << "Cannot grab images!" << endl;
exit ( EXIT_WITH_ERROR );
}
// Getting frames
if ( capture.retrieve( imageDepth, CAP_OPENNI_DISPARITY_MAP ) ) {
imwrite( fileDepth, imageDepth );
}
if( capture.retrieve( imageRGB, CAP_OPENNI_BGR_IMAGE ) ) {
imwrite( fileRGB, …Run Code Online (Sandbox Code Playgroud) 我想安装一些库,以便通过以下链接连接Raspberry中的Kinect 360:http://www.kdab.com/setting-up-kinect-for-programming-in-linux-part-1/
首先,我在Ubuntu上检查过这一切,一切都很好.但是,当我想构建libfreenect(使用make)时,会显示以下错误:
../lib/libfreenect.so.0.5.2: undefined reference to 'lisusb_get_parent'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我是Raspberry的新手,我不知道如何解决这个问题.
任何帮助表示赞赏!! :)
谢谢!
kinect ×10
c# ×6
.net ×2
opencv ×2
3d ×1
audio ×1
c++ ×1
emgucv ×1
infrared ×1
kinect-sdk ×1
makefile ×1
multi-touch ×1
point-clouds ×1
visual-c++ ×1