vision.internal.visionKinectDepthToSkeletonやdepthToPointCloudやpcfromkinectのような生の深度画像から実際のxyzを取得する方法はたくさんあります。
問題は、これらの機能がどのように正確に機能するかがはっきりしないことです。これらの関数はすべてvision.internal.visionKinectDepthToSkeletonを使用し、visionKinectDepthToSkeletonは.pファイルで暗号化されています。
なぜ彼らはどのように機能するのか知りたいですか?私はxyzポイントを取得し、それを424 * 512の深度イメージに変換する逆関数を書いています。
kinect V1では、生の奥行き画像データをxyzに変換するための明確な式がありますが、kinect V2の実用的な解を見つけることができませんでした。
私はmatlab環境で作業していますが、好きなものを自由に使用してください。
ありがとうございます!kinect V2 visionなしのmatlabの実深度画像から実際のxyzポイントを取得するKinectDepthToSkeletonまたはdepthToPointCloudまたはpcfromkinect
1
A
答えて
1
私は仕事をする次のコードを持っています。深度画像を読み取り、X、Y、Z値に変換します。私は "libfreenect2"フォーラムから入手したかもしれません。固有のパラメータに関する限り、使用している値を使用するか、チェッカーボードのパターンと共にcalibration toolboxを使用して自分自身を取得することができます。ここ
function [Xw, Yw, Zw] = Depth2World_v2(fileName, maxDepth)
% Extrinsic parameters of the depth camera. These values are collected
%from the dicussion forum.
fx=367.286994337726; % Focal length in X and Y
fy=367.286855347968;
cx=255.165695200749; % Principle point in X and Y
cy=211.824600345805;
k1=0.0914203770220268;
k2=-0.269349746097515;
k3=0.0925671408453617;
p1=0;
p2=0;
% Read the depth image:
% Ex: fileName = 'depthImg_0018.ppm';
imgPixels = imread(fileName);
% imgPixels = imgPixels (:, end:-1:1);
x3D = zeros(size(imgPixels));
y3D = zeros(size(imgPixels));
z3D = zeros(size(imgPixels));
% Evaluate coordinates from depth image:
[maxR, maxC] = size(imgPixels);
for r=1:maxR
for c=1:maxC
% The depth value is equal to intensity. But it is stored in mm.
d = double(imgPixels(r,c))/1000;
z3D(r,c) = d;
x3D(r,c) = (c - cx) * z3D(r,c)/fx;
y3D(r,c) = (r - cy) * z3D(r,c)/fy;
end
end
は、上記の式は、X、Y及びZの
について導出されたカメラのモデルベースを説明 linkあります関連する問題
- 1. Kinect:いくつかの深度データからスケルトンデータを取得する方法(kinectから取得しましたが、一部を修正しました)
- 2. Kinectから深度データを取得する際に問題が発生しました
- 3. wpfで実際のデスクトップ画面解像度を取得するには?
- 4. kinect v2からカラーフレームを取得
- 5. labviewでkinectから画像を取得するには
- 6. 緯度/経度の2つのポイントからXYZ速度を取得する方法は?
- 7. 実際の画像サイズは、サイズ変更後に取得します
- 8. モバイルデバイスの実際の画面解像度は何ですか
- 9. キャンバスを通して実際の画像サイズを取得できますか?
- 10. エンボス/レリーフ画像からおおよその深度マップを取得するアルゴリズム
- 11. Kinect V2カメラを使用したポイント位置
- 12. 画像からポイントを取得
- 13. ギャラリーから画像を選択してアンドロイドURIから実際のパスを取得します
- 14. kinect v2のカラーフレーム1920 * 1080を640 * 480の解像度に戻します。
- 15. ペーパークリップ得る実際の画像サイズ
- 16. Javascript(またはjQuery)で実際のコンテンツの高さを取得
- 17. MATLAB imresize()は、入力画像行列が実際に複雑な型の場合はどうしますか?
- 18. アンドロイドで、カメラから取得した画像の画像IDを取得する
- 19. Google Cloud Vision APIで画像アノテーションを実行する際に使用するアルゴリズムの種類は何ですか?
- 20. Matlabでは、実際の座標系に45度回転した2D座標系で2値画像をスキャンする方法はありますか?
- 21. iPhoneの画像比率をAVCaptureSessionから取得しました
- 22. ベクトル間のxyz角度を取得しますか?
- 23. google-cloud-visionはアップロードされた画像を保存しますか?そのためのプライバシーポリシーは何ですか?
- 24. EPPlusを使用してイメージ(または画像)をロックするか、イメージ(または画像)を取得する
- 25. Xamarin.Forms経由で実寸画像でHeightRequestポイント(RelativeLayout)を取得
- 26. 不正な出力解像度またはffmpegからのFPSの取得
- 27. Geocoderは実際にGoogleマップapi v2で動作しますか?
- 28. 実際の画像と異なるサムネイル
- 29. 画面の表示深度を取得する方法は?
- 30. 視差マップからオブジェクトの深度を取得するには?