2017年8月3日木曜日

【Python】【Pillow】Windowsでの画像読み込みはPillowがよい。

目的

  あるプログラムを作っていて、画像を読み込む必要があった。その際OpenCVもしくはPillowの選択肢があったが、ドラッグ&ドロップでファイルを読み込ませる場合、日本語や機種依存文字(①.pngとか)のファイル名ではOpenCVのときは読み込めなく、Pillowでは可能だったため、それをここに記す。

環境

  • Windows10
  • Python 3.6.1
  • Pillow  バージョンがわからない。。。
  • OpenCV バージョンがわからない。。。

実行ソース

OpenCvでの読み込みに失敗しており、画像を何かしようとすると落ちる。 cv2.imshow()の部分だ。

import sys
import cv2
from PIL import Image

# 引数を取り込む
fileName = sys.argv[1:] # プログラム名は取り込まない

# 画像読み込み
img = Image.open( fileName[0], 'r' ) # OK
imgCv = cv2.imread( fileName[0], cv2.IMREAD_GRAYSCALE) # NG
img.show()
cv2.imshow("OpenCV", imgCv)  # ここで落ちる

下記は上記ソースを実行するときに必要な、ドラッグ&ドロップでファイルを読み込ませるために必要なバッチファイル。

cd /d %~dp0
python Read_shift_jis.py %*
set /P STR_INPUT="Enterキーを押してください:"

実行結果