Blender Python + OpenCV〜画像読み込み〜
前回は、OpenCvのPython版?(opencv-python)のインストール及び参照追加のための
各種設定などを行いました。
今回は、OpenCvで読み込んだ
イメージファイルの情報をコンソールに表示
します。
前提として、前回のOpenCv-Pythonをインストールしている必要があります。
でわでわ
いつも通りにBlenderを立ち上げます。
ここで言う「いつも通り」とは、以下の手順です。
1.Mac: ターミナル、Win: コマンドプロンプト、を立ち上げてBlenderを起動する
2.Blenderの画面上に「テキストエディタ」「パイソンコンソール」を表示
コードとか記載済みですが、以下の様なイメージです。
そして、前回インストールした「cv2」をインポートします。
import sys
sys.path.append('cv2をインストールしたディレクトリ') # soファイル名に注意
import cv2
適当なイメージファイル(PNG, JPG, JPEGなど)をロード(読み込み)します。
image = cv2.imread('../imgs/Dojo.png') # ここのパスは変更してください
サンプルコードには、os.getcwd()を使用しています。
→現在参照しているディレクトリを取得するメソッドです。
そして、読み込んだイメージファイルから各値(プロパティ)を取得します。
結局は読み込んだイメージオブジェクトのshapeプロパティを表示するだけですが
それぞれ、高さ、幅、チャネル数を示します。
※チャネル数に関してはよくわかりませんでした。
ソースは以下の様になります。
height, width, channels = image.shape[:3]
最後の「:3」はタプルの要素を指定するコードの様です。
そして、表示結果が以下の様になります。
ちょっとつまらない感じですが、これから面白くなる予定です。
ソースコードは以下になります。
※リンクからGitへ飛び、ダウンロードできます。
20180211_A.py ------------------------------------------
import os
import sys
sys.path.append('/usr/local/lib/python3.6/site-packages/cv2/')
import cv2
# this is Normal Loading
#image = cv2.imread(os.getcwd() + '/BlenderPython/img/Dojo.png')
# this is GrayScale Loading
image = cv2.imread(os.getcwd() + '/BlenderPython/img/Dojo.png', cv2.IMREAD_GRAYSCALE)
width = 0
height = 0
channels = 0
print(image.shape)
if image is None:
print("File is None!")
sys.exit(1)
if len(image.shape) == 3:
height, width, channels = image.shape[:3]
else:
height, width = image.shape[:2]
channels = 1
print("width; %d" % width)
print("height; %d" % height)
print("channels; %d" % channels)
print("dtype;" + str(image.dtype))
-----------------------------------------------------
こんな感じになります。
さて、次回は、どこから手をつけようか?
とりあえずは、OpenCvを使いたいので以下のサイトを参照しようと思います。