お疲れ様です。
今回は MATLAB から Python を呼び出して open3d を使う というテーマです。
「MATLAB で open3d を触ってみたい!(しかも Anaconda 環境で)」と思い立って挑戦したのですが、実際にはいくつかの壁がありました。そこで、同じように試してみたい方の参考になるよう、環境構築の手順をまとめました。
目次
Step1 open3dが動く環境を作る(Anaconda)
- Anacondaをインストールする
- condaコマンドで環境を作る(環境名:Testopen3D)
- condaコマンドでSpyderを入れる
- condaコマンドでopen3d/condaforgeをインストールする
- スパイダーで動作確認する
- アナコンダで作ったパイソンの環境のパスを確認する
- パスをコピーする
- matlabを立ち上げる
- pyversionにコピーしたパスを貼り付ける。
- ライブスクリプトを作成する
- タスクを追加する
- 貼り付ける
- 実行する。
バージョン
意外とバージョンの制約がありました。事前に組み合わせを確認した結果、今回は次のバージョンを使うようにしました。
- MATLAB 2025a
- pythonのバージョンは3.12
- open3dはconda-forgeを使用
Step1 open3dが動く環境を作る(Anaconda)
1-1 Anacondaをインストールする
まずはAnacondaをインストールですね(省略)
→ https://www.anaconda.com/
1-2 condaコマンドで環境を作る(環境名:TestOpen3D)
続いて個別環境の構築です。環境名は任意ですが、今回は「TestOpen3D」で作成しました。GUI操作(Anacondaナビゲーター)を使用して環境を作ることもできますが、以前試したところ、待機時間で合計3日間ぐらいかかってしまったので、今回はcondaコマンドを使って環境の構築などを行っていきます。
まずは、Anaconda Promptを立ち上げます。

↓
コマンドを入力します。
conda create -n TestOpen3D python=3.12

↓
走り出して、

↓
これで完了です。

↓
無事できたかどうかは、AnacondaNavigaterで確認できます。

1-3 condaコマンドでSpyderを入れる
事前検証の時に、後工程でSpyderを入れるとエラーが起きたことがあったので、open3dを入れる前にSpyderを入れるのが良いかと感じました。
anacondapromptを立ち上げて…

↓
環境を移動して…
activate TestOpen3D

↓
Spyderをインストールします。
conda install spyder

↓
無事Spyderをインストールができました

1-4 condaコマンドでopen3d/condaforgeをインストールする
続いて、open3d / condaforgeをインストールします。
このURLのようにいくつかのパッケージがあります。open3d / open3d-adminもありますが、最終更新日が3年前のように見えましたので、今回はopen3d / condaforge を使用しました。
TestOpen3D環境下で、コマンドを入れて
conda install -c conda-forge open3d

↓
無事インストールができました

1-5 Spyderで動作確認する
無事open3dが動作するかSpyderで確認したいと思います。
AnacaondaNavigaterを立ち上げて

↓
環境を変えて

↓
Spyderを立ち上げます。

↓
用意したplyファイルとコードを実行しました。
・Plyファイル(bunny.ply)
以下のURLのデータを使用しました。
G-PCD: Geometry Point Cloud Dataset ‒ MMSPG ‐ EPFL
・コード
import open3d as o3d
ply_path = "bunny.ply"
# 点群を読み込み
point_cloud = o3d.io.read_point_cloud(ply_path)
o3d.visualization.draw_geometries([point_cloud])

↓
Plyファイルが表示できました。

無事、open3dが動作する環境を構築することができました。
Step2 MATLABで呼び出す
続いてMATLABでこの環境を呼び出します。
2-1 Anacondaで作った環境のパスを確認する
まずは、個別環境のパスを確認します。
今回はTestOpen3Dという名称にしましたので、この場所を探します。
私の場合は、anaconda3を探して→envを開いて

↓
作成した環境名(今回はTestOpen3D)を開きます。

↓
その中の「python」が大事です

2-2パスをコピーする
2-1で探した「python」のパスをコピーします。

↓
メモ帳などにコピーしておきます。
私の場合は、以下のパスでした。
"C:\Users\Owner\anaconda3\envs\TestOpen3D\python.exe"
2-3 matlabを立ち上げる
MATLABを立ち上げます。

2-4関数pyversionの引数に、コピーしたパスを貼り付ける。
MATLABを立ち上げたら、TestOpen3Dの環境を紐づけます。
今回はpyversion関数を使用しました。
コマンドウィンドウに以下を入力します。
pyversion("C:\Users\Owner\anaconda3\envs\TestOpen3D\python.exe")
% "C:\Users\Owner\anaconda3\envs\TestOpen3D\python.exe"はご自身の環境で変化します。

↓
無事に設定が完了していると、>> pyversion でTestOpen3Dのpythonのバージョンが表示されます。

↓
無事に紐づけが完了しました。
2-5ライブスクリプトを作成する
続いてライブスクリプトを作成します。

↓
タスク(Pythonコードの実行)を追加します。

2-6タスクを追加する
2-5でタスクを追加した後の画面です。

※今回は、自動実行はオフにした方がいいかもしれません。

2-7貼り付ける
タスク(Pythonコードの実行)に1-5で貼り付けたコードを張り付けます。


↓
実行します
↓
Plyファイルが無事に表示されました。

↓
無事に動作しました。
終わりに
今回はMATLABでopen3dを開いてみるということを試してみました。今回は直接MATLABのコードと接続していませんが、もちろん変数としてやり取りすることができるかと思います。Open3dにはいろいろな関数があるので今度試してみようかと思います。