二値化を行い,白黒の割合を表示したいです.
複数画像をまとめて行いたいので,フォルダから入力画像を読み込み.出力画像を新しくフォルダを作成して保存したいです.
白黒の割合までは表記させられたのですが,これもcsvに吐き出せず…
よろしくお願いいたします。
作成したコードを示します.
import cv2 import numpy as np def calc_black_whiteArea(bw_image): image_size = bw_image.size whitePixels = cv2.countNonZero(bw_image) blackPixels = bw_image.size - whitePixels whiteAreaRatio = (whitePixels/image_size)*100#[%] blackAreaRatio = (blackPixels/image_size)*100#[%] print("White Area [%] : ", whiteAreaRatio) print("Black Area [%] : ", blackAreaRatio) if __name__ == "__main__": # read input image image = cv2.imread("入力画像") # convert grayscale image gray_image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) # black white ret, bw_image = cv2.threshold(gray_image, 0, 255, cv2.THRESH_OTSU) # save image cv2.imwrite("出力画像", bw_image) # calculation black and white area calc_black_whiteArea(bw_image) コード
> 白黒の割合までは表記させられたのですが,これもcsvに吐き出せず…
ファイル出力の方法は調べれば分かるかと思うのですが、調べていないのでしょうか?
もちろん何度も調べてますが,それを組み入れるのがまだまだpythonのことを理解できていないためうまく組み込めずにいます
「出力画像を新しくフォルダを作成して保存したい」ということであれば、imwriteをする前にフォルダを作成して、imwriteに指定するファイル名にフォルダを含めて渡せば良いと思います。
> もちろん何度も調べてますが,それを組み入れるのがまだまだpythonのことを理解できていないためうまく組み込めずにいます
現在のプログラムに組み入れるのではなく、単体であれば実装できるという意味に受け取って良いですか?
そうです.伝わりにくてすいません
現在のコードでprint()しているところをファイル出力に変えれば良いと思います。
あなたの回答
tips
プレビュー