タイトルの通りですが、PythonでOpenCVを使って、PyQtでユーザが選択した画像をグレースケール化して保存する簡単なアプリを作ってみます。
この記事のサンプルコードを改造します。
PyQtも必要なので先に下記の記事を確認して環境をインストールしてください。
サンプルコード
import os
import cv2
import sys
from PyQt5.QtWidgets import (QFileDialog, QApplication)
app = QApplication(sys.argv)
path = os.getcwd()
input_image_path = QFileDialog.getOpenFileName(
QFileDialog(), caption="入力画像", directory=path, filter="*.png")[0]
output_dir = os.path.dirname(input_image_path)
input_image_name = os.path.basename(input_image_path)
ftitle, fext = os.path.splitext(input_image_name)
output_image_name = ftitle + '_gray_scale' + fext
sep = os.sep
output_image_path = output_dir + sep + output_image_name
# 画像の読み込み
image_input = cv2.imread(input_image_path)
# グレースケール化
gray_image = cv2.cvtColor(image_input, cv2.COLOR_BGR2GRAY)
# 画像の書き出し
cv2.imwrite(output_image_path, gray_image)
これで、実行するとユーザが選択したファイルをグレースケール化して書き出すアプリが作られることをアプリができました。
あとは、アプリ化して完成です! 簡単ですね!
pyinstaller gray_scale.py --onefile --noconsole