境界処理パラメータ BorderTypeについて

2021年3月19日

はじめに

いろんなフィルタのパラメータによく出てくる BorderType についてまとめた。

BorderType とは

畳み込みフィルタなどで処理範囲の端に未処理画素(計算されない部分)が出てくる。
そこの値をどのように決定するかを設定するためのパラメータ。

パラメータリスト

BORDER_DEFAULT画像境界で反射。
BORDER_CONSTANTある一定値 (Border value)を使用。
BORDER_REPLICATE境界の値を使用。
BORDER_REFLECT画像境界で反射。 BORDER_DEFAULT と少し違う
BORDER_REFLECT_101BORDER_DEFAULT 同様
BORDER_REFLECT101BORDER_DEFAULT 同様
BORDER_TRANSPARENT元画像を変更しない
BORDER_WRAP画像自身を繰り返し
BORDER_ISOLATED何もしない。

処理範囲の外側がどの様になるかの例を以下に示す。

終わりに

BorderType はよく出てくるけど、最終的に欲しい結果に対して影響があることは稀な気がする。
だいたい必要な範囲よりも大きく処理範囲を取るので。

おまけ

実験用プログラム OpenCV_test の GitHubリポジトリ
URL
https://github.com/iryachi/OpenCV_test
実行ファイルだけ
https://github.com/iryachi/OpenCV_test/releases
使い方
https://iryachi.stars.ne.jp/opencv_test_imple/