写真から3Dモデルを作る方法を思いついた その01環境づくり


どーもKsukeです。 
写真から3Dモデルを作る方法を思いついたその01で、環境づくりをやっていきます。
※注意※
この記事は思いついて試した事の末路を載せているだけなので、唐突なネタやBad Endで終わる可能性があります。

なにやるの?

 物を3面から写真を撮って、その写真から3Dモデルを作ってみます!
 細かく言うと、正面、側面、上面から写真を撮って、それらをもとに3Dモデルのポリゴンとテクスチャを作成します。なお、写真3枚から作るので、それ以外の方向からの見た目は(まだ)考えません。

環境
環境はこんな感じで試しました。
・Windows10
・blender 2.83
・python 3.7

やってみる

手順
1.blenderダウンロード
2.blenderのpythonにライブラリ追加

1.blenderダウンロード

まずは下のURLからダウンロード・インストール。
バージョンは2.83で。
https://www.blender.org/download/

2.blenderのpythonにライブラリ追加

インストールしたblenderのファイルの中の、下の画像のパスを参考にpython.exeがあるフォルダを開いて、

開いた画面の、画像で赤枠で囲われている個所に「cmd」と入力してEnterをおして、

このような画面(コマンドプロンプト)を開きます。

開いたコマンドプロンプトに下のようなコマンドをたたいてライブラリを投入。

コマンドプロンプト(これはコピーしないで・・・)
python -m pip install numpy=1.17.0
python -m pip install opencv-python=4.3.0.36
python -m pip install scipy=1.4.1
python -m pip install scikit-learn=0.23.2

間違えた。。。イコール2つか。。。

修正してもっかい投入

コマンドプロンプト(これは大丈夫)
python -m pip install numpy==1.17.0
python -m pip install opencv-python==4.3.0.36
python -m pip install scipy==1.4.1
python -m pip install scikit-learn==0.23.2


つつがなく終了。
画面サイズの都合で3コマンド分しか表示されてないが、赤下線のような「Successfully installed****」が各コマンドで出てればよし。

動作確認

最後に環境づくりが成功してるか確認。

1.blenderを開いてみる

blender.exeをクリックして開いてみる。
こんな感じの画面が出ればよし。

2.blenderでpythonを実行

上の画像の赤線で囲ってる「Scripting」ボタンを押してpythonを実行できる画面に移動。下のような画面になればよし。

うまくいったら赤枠で囲ってある「new」を押して、

赤枠の領域に下の「import確認用ソース」を張り付けて、青枠の実行ボタンを押してみると

import確認用ソース
import numpy as np
import cv2
from scipy.spatial import Delaunay
import bpy
import bmesh

print("step01:Creating an environment is success.\n")

・・・・・・・・・ぱっと見何も変わりません。

そいえばblenderでプログラムのprintを見るにはひと手間必要なんです。。。
てことで下の画像の、赤枠の「Window」を押した後に出てくる青枠の「Toggle System Console」をクリック。

そうするとプログラムのprintしたものが出てくるウィンドウが出てくるので表示を確認すると・・・

先ほど実行した「import確認用ソース」のprintの内容が出ていて、エラーもなさそうなので良し。

blenderが開けて、importも問題なさそうなのでこれにて動作確認完了!

次は?

画像の読み込みと、blenderで頂点を表示する方法をやってみるつもりです。

2020/9/3追記
その2を公開しました。
https://qiita.com/Ksuke/items/8a3a2faa90263b439f8b

コードまとめ

今回分はともかく、次回以降は散発で出てくるコードをまとめてここに乗せときます。
次回以降のコードは、前回までのコードの後ろにくっつければ動くようにするつもりです。

コードまとめ(関数編)
#今回は関数なし
コードまとめ(実行コード編)
import numpy as np
import cv2
from scipy.spatial import Delaunay
import bpy
import bmesh

print("step01:Creating an environment is success.\n")