2値化されたグレースケール画像の各オブジェクトの面積(画素数)を計算し,指定した面積より小さい場合はそのオブジェクトを削除するという処理をpythonで行いたいです。
import tifffile #画像読み込み file_name = "image.tiff" img = tifffile.imread(file_name) #二値化 binari_threshold = 1000 img[img < binari_threshold] = 0 img[img >= binari_threshold] = 1 #面積閾値処理 area_threshold = 200
python3.6.4を使用しています。
上記のソースコードにどのようなコードを加えればよいでしょうか。
画像を読み込む際はなるべくtifffileモジュールを使いたいです。
ご教授よろしくお願いします。
「2値化されたグレースケール画像」=「白黒画像」でしょうか? グレイスケールの値は 0~255 とすることが多いと思いますが、スレッショルドが1000なのであれば、グレイスケールの値の範囲はどうなっているのでしょうか? そして”各オブジェクト”は、どのように定義されているのでしょうか? 申し訳ないですが、質問が理解できません。
コメントありがとうございます。
言葉足らずで申し訳ありませんでした。
2値化されたグレースケール画像 = 白黒画像という認識で合っています。
また,今回読み込む画像は16bitの画像なので,グレースケールの値の範囲は0~65535となっています。
各オブジェクトというのは,白黒画像の中で画素値が1の画素が連結した画素群を指しています(連結性は4連結)。