libfreenectを使ったKinect v1の開発②
2756 ワード
前回の続き.
Depth画像に続きColor画像を表示しようとしたがなぜか画像が切られた状態で表示される問題が発生したのでメモ.
ソースコード
今回は省略した形で掲載.
コールバック関数
void video_cb(freenect_device *dev, void *rgb, uint32_t timestamp)
{
cv::Mat temp = cv::Mat(480, 640, CV_8UC3, rgb);
//imshowで正しく表示するためにBGRをBGRに変換
cv::cvtColor(temp, temp, CV_RGB2BGR);
//幅を480のままにするとおかしなことになる
memcpy(color.data, temp.data, 640*(480 + 950));
}
コールバック関数内のmemcpyで640 * 480にすると画像が途中で切れてしまうが, ここを参考にして480に950を足すことでそれを解決できた.
コールバック関数を前回のコードと同様に呼び出せばカラー画像が表示される.
実行結果
Author And Source
この問題について(libfreenectを使ったKinect v1の開発②), 我々は、より多くの情報をここで見つけました https://qiita.com/int_main_Nick/items/732d548ae3b2179876fd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .