シェルスクリプトで画像の明暗を判断する
のサイトで、画像の明暗を数値をだして判断するというのをPythonのプログラムで使いたいです。
もしくは、ImageMagickを使わないで、画像の明暗を数字を使って判断するプログラムを教えてください。
ImageMagick の identify を用いる場合、
Python3 subprocess + ImageMagick identifyで画像のexif情報を取得するというサイトを参考にしたのプログラムを作成しましたがダメでした。
python
1import cv2 2import glob 3import argparse 4import numpy as np 5import subprocess 6 7from matplotlib import pyplot as plt 8from scipy.linalg import fractional_matrix_power 9 10 11img = cv2.imread('input/IMG841.jpg') 12 13#flag=`identify -format "%[mean]" "img"` 14flag = subprocess.run(['identify', '-format', '%[mean]', 'img'], stdout=subprocess.PIPE) 15 16print(flag) 17 18if flag > 25000 : 19 print("明るい\n") 20 21else: 22 print("暗い\n")
error
1$ python3 identify.py 2identify: unable to open image 'img': No such file or directory @ error/blob.c/OpenBlob/3527. 3identify: no decode delegate for this image format `' @ error/constitute.c/ReadImage/572. 4CompletedProcess(args=['identify', '-format', '%[mean]', 'img'], returncode=1, stdout=b'') 5Traceback (most recent call last): 6 File "identify.py", line 18, in <module> 7 if flag > 25000 : 8TypeError: '>' not supported between instances of 'CompletedProcess' and 'int'
ImageMagick の identify を用いない場合、
OpenCVで明るさ(輝度),色相,彩度をグラフに描画・さらに明るさ調整が参考になると思うのですが、ImageMagickの identify と同じ様な結果を得る方法がわかりません。
どなたか教えてください。お願い致します。
回答3件
あなたの回答
tips
プレビュー