
你看出错信息里面的值,row=424,图像时512x424像素,取值应该是0x0~511x423吧!明显越界了。每台仔细看你的程序,但是你的x,y值双层循环部分:
for(int y=0;y<424;y++)
for(int x=0;x<512;x++)
{
p_ir[2]=dbufferMat1at<UINT16>(y,x);
是不是缺了一层括号啊!
for(int y=0;y<424;y++)
{
for(int x=0;x<512;x++)
{
p_ir[2]=dbufferMat1at<UINT16>(y,x);
应该是这样吧!
从kinect里读数据是一帧一帧的,如果只取一个骨骼的数据,excel表格可以是这样:
1
2
3
4
5
帧号|X坐标|Y坐标|Z坐标
1|2356|3172|5265
2|2356|3172|5265
3
4
如果取多个骨骼节点的坐标,excel表格可以是这样:
帧号|骨骼与坐标
1|RightHand{X:1235;Y:3127;Z:5265}LeftHand{}LeftShoulder{}
2|RightHand{X:1235;Y:3127;Z:5265}LeftHand{}LeftShoulder{}
3
Kinect取骨骼的函数我也建议你自己网上找,核心逻辑写在SkeletonFrameReady函数里。
Excel写入程序也可以在网上找到。
在python中numpy是很好用的数据处理包。不了解你说的数据结构但是可以尝试把数据转成numpy的md数组格式。之后可以在数组中进行检查看是不是所有的三通道都相等。如果说这样的话那么理论上三通道和三通道代表的信息都是一样的,直接在里面切片不会影响结果。
以上就是关于opencv访问元素出错!!!全部的内容,包括:opencv访问元素出错!!!、如何利用Kinect获取骨骼节点的三维坐标、数据集是Kinect获取的三通道深度图,怎么变成单通道且无信息损失等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)