matlab能否提取图片像素,如何使用Matlab获取Kinect v2图像中特定RGB像素的深度值

我正在使用Kinect v2,我必须将深度信息映射到RGB图像上来处理它们:特别是,我需要知道RGB图像中哪些像素在Z的某个距离(深度)范围内轴;我正在使用C#程序获取所有数据并将其保存为图像(RGB)和txt文件(深度) .

我遵循了here和here的指示(我感谢他们分享),但我仍然遇到一些我不知道如何解决的问题 .

我已经计算了深度传感器和RGB相机之间的旋转(R)和平移(T)矩阵,以及它们的内在参数 .

我创建了P3D_d(与深度传感器相关的世界坐标中的深度像素)和P3D_rgb(与rgb相机相关的世界坐标中的深度像素) .

row_num = 424;

col_num = 512;

P3D_d = zeros(row_num,col_num,3);

P3D_rgb = zeros(row_num,col_num,3);

cont = 1;

for row=1:row_num

for col=1:col_num

P3D_d(row,col,1) = (row - cx_d) * depth(row,col) / fx_d;

P3D_d(row,col,2) = (col - cy_d) * depth(row,col) / fy_d;

P3D_d(row,col,3) = depth(row,col);

temp = [P3D_d(row,col,1);P3D_d(row,col,2);P3D_d(row,col,3)];

P3D_rgb(row,col,:) = R*temp+T;

end

end

我创建了P2D_rgb_x和P2D_rgb_y .

P2D_rgb_x(:,:,1) = (P3D_rgb(:,:,1)./P3D_rgb(:,:,3))*fx_rgb+cx_rgb;

P2D_rgb_y(:,:,2) = (P3D_rgb(:,:,2)./P3D_rgb(:,:,3))*fy_rgb+cy_rgb;

但现在我不明白如何继续 .

假设校准参数是正确的,我试图点击深度(坐标:row_d,col_d)和rgb(坐标:row_rgb,col_rgb)图像中的定义点,但P2D_rgb_x(row_d,col_d)完全不同来自row_rgb,以及P2D_rgb_y(row_d,col_d)与col_rgb完全不同 .

那么,究竟是什么意思P2D_rgb_x和P2D_rgb_y?如何使用它们将深度值映射到rgb图像或仅获取某个RGB像素的深度?

我会建议任何建议或帮助!

PS:我在这个链接上也有一篇关于MathWorks的相关文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值