###実現したいこと
pythonを用いたwebアプリの開発を行っています。その時の画像処理において、以下のような処理を行いたいのですが、そのプログラム方法がわからず困っています。二値化の変形のようなものです。
・もし無彩色ならば、白色にする
・もし有彩色ならば、黒色にする
初心者ですのでぜひご教授ください。
###使っているもの
Python3.9.6
VSCode
Flask
OpenCVとNumPyをインポートしています。
###試したこと
・通常の二値化はできました。ただ、ネットで調べながら試行錯誤したものです。最後のアウトプットの段階で色々付け加えているのは、ファイル名を変更して保存するためなのであまり関係ありません。
・試しに以下のプログラムの実装の部分の[]の中を、gray!=imgとgray==imgにしてみたのですが、真っ黒になりました。
####二値化のプログラム
Python
1#opencvとnumpyのimport 2import cv2 3import numpy as np 4import os 5def process(filename): 6 #画像の読み込み 7 img = cv2.imread("static/images/"+filename) 8 9 #グレースケール変換 10 gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) 11 12 #閾値の設定 13 threshold_value = 200 14 15 #配列の作成(output用) 16 threshold_img = gray.copy() 17 18 #実装(numpy) 19 threshold_img[gray < threshold_value] = 0 20 threshold_img[gray >= threshold_value] = 255 21 #ファイル名を変更しての保存 22 file_path="static/images/"+filename 23 path, ext = os.path.splitext( os.path.basename(file_path) ) 24 filename=path+"_already"+ext 25 file_path="static/images/"+filename 26 #Output 27 cv2.imwrite(file_path,threshold_img) 28 return filename 29
あなたの回答
tips
プレビュー