省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

ImageJ / Python プログラミング Tips: ROI が設定されないと、全選択と同じ

 自分ではまったプログラミングの備忘録です。

    mask.setValue(roiColor)
                    # with which color ROI filled (normally L_max)
    ip.setThreshold(lowerV, upperV, ImageProcessor.NO_LUT_UPDATE)
    roi = ThresholdToSelection.run(imp)
    mask.setRoi(roi)
    mask.fill(roi)

 

 閾値を lowerV, upperV で設定しそこで選択された範囲を roi に変換し、mask という名の imageProcessor にそれを貼り付け、roiColor で指定した色で塗りつぶすというコードですが、この閾値に該当するピクセルが存在しない場合、当然 roi が作成されません。この場合、  mask.setRoi(roi) を実行してもエラーにはなりませんが、roi は貼りつかない状況になります。

 この時 fill を実行すると、結局 roi がないとういことになります。しかし、これは全体が選択されている、ということになりますので、mask は全体が roiColor に塗りつぶされます。roi がない = 選択範囲がない、ということではないので、注意が必要です。