Mugichoko's blog

Mugichoko’s blog

プログラミングを中心としたメモ書き.

プログラミング

RGB-D SLAMを実装する #5

大域的目標 今回の目標 実装内容 実装結果 所感 大域的目標 KellerらのRGB-D SLAM[1]が実装したい!と思い立ったので実装していく,というモチベーションの記録.ちょっとずつ実装している.今回が5回目.モチベーションに関する詳細は初回の記事を参照のこ…

RGB-D SLAMを実装する #4

大域的目標 画像ピラミッドの実装 画像ピラミッドを使ったICPの実装 実装結果 参考文献 大域的目標 KellerらのRGB-D SLAM[1]が実装したい!と思い立ったので実装していく,というモチベーションの記録.ちょっとずつ実装している.今回が4回目.モチベーショ…

RGB-D SLAMを実装する #3

大域的目標 今回の目標 ICPアルゴリズムの理解 ICPアルゴリズム(画像ピラミッドなし)のGPU実装 実装結果 参考文献 大域的目標 KellerらのRGB-D SLAM[1]が実装したい!と思い立ったので実装していく,というモチベーションの日誌記録.ちょっとずつ実装して…

GLSL #12: Pixel Buffer Object (PBO)

目標 実装環境 サンプルプログラム pbo.h pbo.cpp 結果 目標 Pixel Buffer Object (PBO) を使って,GPUメモリにあるテクスチャ(画像)をメインメモリに読み込む.「glReadPixels()やglGetTexImage()は遅い!」でも「PBOを使うと速い!」という話をよく聞く…

C++からPythonを呼び出す

目標 実装環境 Visual StudioとPython Toolsのインストール サンプルプログラム 遭遇した問題とその対処 問題 対処法 目標 Visual Studioを使ってC++のプロジェクトからPythonのスクリプトを実行する.また,この際に遭遇した「Visual StudioがC++からのPyth…

RGB-D SLAMを実装する #2

大域的目標 方針転換 GLSLによる制約? 解決案 今回の目標 実装 処理フローとメモリ管理 実装結果 参考文献 大域的目標 KellerらのRGB-D SLAM[1]が実装したい!と思い立ったので実装していく,というモチベーションの日誌.ちょっとずつ実装していく.今回が…

RGB-D SLAMを実装する #1

目標 アルゴリズム 参考文献 目標 KellerらのRGB-D SLAM[1]が実装したい!と思い立ったので実装していく,というモチベーションの日誌.今回が初稿.ちょっとずつ実装していく.今回は,論文読解とアルゴリズムの整理を行う.

GLSL #11: Bilateral Filter

目標 実装環境 参考サイト main.cpp bilateralFilter.comp 結果 目標 前回(下記参照)の予告通り,Bilateral Filterを実装する.

GLSL #10: RGB-D画像からの頂点・法線マップ生成

目標 実装環境 処理内容 流れ 頂点マップの計算 法線マップの計算 サンプルプログラム main.cpp calcVertMap.comp calcNormMap.comp 結果 参考文献 目標 前回(下記参照)は,Compute Shaderを使って,3DCGを描画した際に生成されるZバッファの線形化を行う…

ドロネー三角形分割:三角形に所属する各点のIDを取得

目標 実装環境 プログラム 実行結果 目標 前回ランダムに生成した2次元点を入力として,ドロネー三角形分割を行い,結果を描画した. 今回は,そこで用いたFade2Dを利用して,各三角形にどの2次元点が使われたかを特定する方法を実装する.

Python 3.6 + OpenCV 3.2 on Windows 10 64-bit

目標 実装環境 遭遇した問題 解決策 解決策1:conda-forge 参考 解決策2:pipと.whil 参考 解決策3:Python3.5へのダウングレード(未確認) テストコード 実行結果 目標 Python版OpenCVを使ったプログラミングを,Visual Studioでできるようにする.今回は…

GLSL #9: Zバッファの線形化

目標 Zバッファの線形化とは? 実装環境 レンダリングの流れ サンプルプログラム main.cpp zbuff.comp 結果 目標 前回(下記参照)までの実装を少し変更して,Compute Shaderを使って,3DCGを描画した際に生成されるZバッファの線形化を行うプログラムを作成…

GLSLのCompute ShaderでZバッファを読み込む際のトラブルと解決方法

問題 GLSLのCompute ShaderでZバッファを読み込みたかったのだが,下記のリンクと同じ問題に遭遇した. stackoverflow.com 簡単には,Zバッファを可視化したところ,ワイヤーフレームが強調された用な結果が出力されてしまう問題だ. 結果的に,私の場合は単…

GLSL #8: Compute Shaderを使った画像処理

目標 実装環境 レンダリングの流れ サンプルプログラム main.cpp sample.comp 結果 目標 前回(下記参照)までの実装を組み合わせて用いることで,3DCGを描画した結果に対してCompute Shaderを使って画像処理(Sobelフィルタによるエッジ検出)を行うプログ…

GLSL #7: Compute Shader

目標 実装環境 レンダリングの流れ サンプルプログラム shaderUtil.h shaderUtil.cpp main.cpp sample.comp 結果 目標 こちらの内容を参考に,とりあえずCompute Shaderが動作することを確認する. 尚,今回実装する内容は,前回(下記参照)までの実装に基…

GLSL #6: Frame Buffer Object (FBO)

目標 実装環境 レンダリングの流れと結果 サンプルプログラム modelTex.h modelTex.cpp fbo.h fbo.cpp main.cpp 目標 前回(下記参照)は,テクスチャマッピングを行うプログラムを作成しました. 今回は,そのプログラムをベースに,FBOに描画した結果を四…

GLSL #5: テクスチャマッピング

目標 実装環境 DevILのダウンロード Visual Studioのプロジェクト作成 サンプルプログラム model.h model.cpp modelTex.h modelTex.cpp main.cpp modelTex.vert modelTex.vert 結果 目標 前回のプログラムをベースに,今度はテクスチャマッピングを実装する…

GLSL #4: シェーダを使った三角形の描画

目標 実装環境 GLMのダウンロード Visual Studioのプロジェクト作成 サンプルプログラム window.h window.cpp shaderUtil.h shaderUtil.cpp main.cpp simple.vert simple.frag 結果 目標 前回作成したプログラム(下記参照)の固定パイプラインによる描画部…

GLSL #3: 固定パイプラインを使った三角形の描画

目標 実装環境 GLEWのダウンロード Visual Studioのプロジェクト作成 サンプルプログラム window.h window.cpp main.cpp 結果 目標 GLFWを使って作成したウィンドウ(下記の前回記事参照)に,固定パイプラインを使って三角形を描画する.ここで初めてGLEWを…

GLSL #2: コールバック関数の登録

目標 実装環境 サンプルプログラム window.h window.cpp main.cpp 結果 目標 GLFWを使って作成したウィンドウ(下記の前回記事参照)にコールバック関数を用いた,エラーハンドリング,キー操作,スクロール操作を追加する.

GLSL #1: Window作成

目標 実装環境 GLFWのダウンロード Visual Studioのプロジェクト作成 サンプルプログラム window.h window.cpp main.cpp 結果 目標 GLFWを使ってウィンドウを作る*1. *1:GLFWはOpenGLのウィンドウを作る機能を有したライブラリです.ウィンドウを作る以外の…

ドロネー三角形分割:描画

目標 実装環境 OpenCV Subdiv2D Visual Studioの設定 プログラム 実行結果 Fade2D ダウンロードとインストール Visual Studioのプロジェクト作成 プログラム 実行結果 目標 ランダムに生成した2次元点を入力として,ドロネー三角形分割を行い,結果を描画す…

はじめてのVTK

目標 実装環境 VTKのダウンロードとビルド Visual Studioのプロジェクト作成 サンプルプログラムの実行 結果 目標 とりあえずVisual StudioでVTKを扱えるようになる.

PCL + RGBDカメラ

目標 実装環境 プログラム 結果 目標 Microsoft KinectやASUS XtionといったRGBDカメラを使って取得できるRGBD画像から生成した色付き点群を,PCLのウィンドウ上に描画する. 尚,前回作ったVisual Studioのプロジェクトを基にして実装する.前回の記事は以…

はじめてのPCL

目標 実装環境 PCLのダウンロード Visual Studioのプロジェクト作成 サンプルプログラムの実行 結果 目標 とりあえずVisual StudioでPCLを扱えるようになる.