Python から libpcl を使う(GitHub の davidcaron/pclpy, Python を使用)(Ubuntu 上)
利用条件などは利用者において確認してください
【サイト内の関連ページ】
参考Webページ
- Github の Web ページ: https://www.github.com/davidcaron/pclpy
- Pypi の Web ページ: https://pypi.org/project/pclpy/
謝辞:このページで使用しているソフトウェア類の作者に感謝します
前準備
Python 3.12 のインストール
インストール済みの場合は実行不要。
以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要である。
REM Python 3.12 をシステム領域にインストール
winget install --scope machine --id Python.Python.3.12 -e --silent --accept-source-agreements --accept-package-agreements
REM Python のパス設定
set "PYTHON_PATH=C:\Program Files\Python312"
set "PYTHON_SCRIPTS_PATH=C:\Program Files\Python312\Scripts"
if exist "%PYTHON_PATH%" setx PYTHON_PATH "%PYTHON_PATH%" /M >nul
if exist "%PYTHON_SCRIPTS_PATH%" setx PYTHON_SCRIPTS_PATH "%PYTHON_SCRIPTS_PATH%" /M >nul
for /f "skip=2 tokens=2*" %a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path') do set "SYSTEM_PATH=%b"
echo "%SYSTEM_PATH%" | find /i "%PYTHON_PATH%" >nul
if errorlevel 1 setx PATH "%PYTHON_PATH%;%PYTHON_SCRIPTS_PATH%;%SYSTEM_PATH%" /M >nul
【関連する外部サイト】
【サイト内の関連ページ】
- Python ガイド:別ページで説明 »
Build Tools for Visual Studio 2022 のインストール(Windows 上)
以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
REM VC++ ランタイム
winget install --scope machine --accept-source-agreements --accept-package-agreements --silent --id Microsoft.VCRedist.2015+.x64
REM Build Tools + Desktop development with C++(VCTools)+ 追加コンポーネント(一括)
winget install --id Microsoft.VisualStudio.2022.BuildTools ^
--override "--passive --wait --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.ComponentGroup.ClangCL --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.Windows11SDK.26100"
--add で追加されるコンポーネント
上記のコマンドでは,まず Build Tools 本体と Visual C++ 再頒布可能パッケージをインストールし,次に setup.exe を用いて以下のコンポーネントを追加している。
VCTools:C++ デスクトップ開発ワークロード(--includeRecommendedにより、MSVC コンパイラ、C++ AddressSanitizer、vcpkg、CMake ツール、Windows 11 SDK 等の推奨コンポーネントが含まれる)VC.Llvm.Clang:Windows 向け C++ Clang コンパイラClangCL:clang-cl ツールセットを含むコンポーネントグループ(MSBuild から Clang を使用するために必要)VC.CMake.Project:Windows 向け C++ CMake ツールWindows11SDK.26100:Windows 11 SDK(ビルド 10.0.26100)
インストール完了の確認
winget list Microsoft.VisualStudio.2022.BuildTools
上記以外のコンポーネントが必要になった場合は Visual Studio Installer で個別にインストールできる。
Git のインストール(Windows 上)
Gitは,バージョン管理システム.ソースコードの管理や複数人での共同に役立つ.
【サイト内の関連ページ】 Windows での Git のインストール: 別ページ »で説明
【関連する外部ページ】 Git の公式ページ: https://git-scm.com/
Gitのインストール
以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要となる。
REM Git をシステム領域にインストール
7-Zip のインストール
以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要となる。
REM 7-Zip をシステム領域にインストール
winget install --scope machine --id 7zip.7zip -e --silent
REM 7-Zip のパス設定
set "SEVENZIP_PATH=C:\Program Files\7-Zip"
for /f "skip=2 tokens=2*" %a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path') do set "SYSTEM_PATH=%b"
if exist "%SEVENZIP_PATH%" (
echo "%SYSTEM_PATH%" | find /i "%SEVENZIP_PATH%" >nul
if errorlevel 1 setx PATH "%SEVENZIP_PATH%;%SYSTEM_PATH%" /M >nul
)
libpcl 1.9.1 のインストール
davidcaron/pclpy を使いたい.次のページによれば,バージョンは 1.9.1 が指定されている.
davidcaron/pclpy の URL: https://github.com/davidcaron/pclpy
- Windows での libpcl のインストール手順は,別ページ »で説明
- Ubuntu の場合は,次のコマンドを実行する.
# パッケージリストの情報を更新
sudo apt update
sudo apt -y install libboost-all-dev libeigen3-dev libvtk9-dev libflann-dev
cd /usr/local
sudo rm -rf pcl-pcl-1.9.1
cd /tmp
curl -O -L https://github.com/PointCloudLibrary/pcl/archive/refs/tags/pcl-1.9.1.tar.gz
cd /usr/local
sudo tar -xvzof /tmp/pcl-1.9.1.tar.gz
sudo chown -R $USER pcl-pcl-1.9.1
cd pcl-pcl-1.9.1
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j2
sudo make install
davidcaron/pclpy のインストール
davidcaron/pclpy の URL: https://github.com/davidcaron/pclpy
- インストールディレクトリを空にする
- github の davidcaron/pclpy のダウンロード
- 前提パッケージのインストール
- インストール
Ubuntu の場合
sudo chown -R $USER /usr/local/pytools/pclpy
cd /usr/local/pytools/pclpy
PYTHON=python3 bash scripts/download_pcl.sh
PYTHON=python3 bash scripts/generate_points_and_bindings.sh
# scripts/generate_hpp_point_types.sh
cd generators
PCL_REPO_PATH=/usr/local/pcl-pcl-1.9.1 PYTHONPATH=/usr/local/pytools/pclpy python3 generate_point_types.py
cd ..
python3 setup.py build
sudo python3 setup.py install
- 動作確認
https://github.com/davidcaron/pclpy/blob/master/README.md に記載の Python プログラムを実行してみる
エラーメッセージが出なければOKとする
import pclpy
from pclpy import pcl
point_cloud = pclpy.read("/usr/local/pclpy/tests/test_data/street.las", "PointXYZRGBA")
mls = pcl.surface.MovingLeastSquaresOMP.PointXYZRGBA_PointNormal()
tree = pcl.search.KdTree.PointXYZRGBA()
mls.setSearchRadius(0.05)
mls.setPolynomialFit(False)
mls.setNumberOfThreads(12)
mls.setInputCloud(point_cloud)
mls.setSearchMethod(tree)
mls.setComputeNormals(True)
output = pcl.PointCloud.PointNormal()
mls.process(output)