java openni rgb显示_使用Openni从Kinnect捕获RGB并使用OpenCV进行显示

好的,首先你应该通过这种方式将初始化与循环分开来读取帧.

初始化

openni::Device device;

openni::VideoStream color;

openni::VideoFrameRef colorFrame;

rc = openni::OpenNI::initialize();

rc = device.open(openni::ANY_DEVICE);

rc = color.create(device,openni::SENSOR_COLOR);

rc = color.start();

Mat frame;

现在是阅读框架的主循环.你已经完成了几乎所有的事情,唯一剩下的就是将缓冲区复制到openCV Mat.

循环阅读框架

while (true)

{

color.readFrame(&colorFrame);

const openni::RGB888Pixel* imageBuffer = (const openni::RGB888Pixel*)colorFrame.getData();

frame.create(colorFrame.getHeight(),colorFrame.getWidth(),CV_8UC3);

memcpy( frame.data,imageBuffer,3*colorFrame.getHeight()*colorFrame.getWidth()*sizeof(uint8_t) );

cv::cvtColor(frame,frame,CV_BGR2RGB); //this will put colors right

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值