Opencv-image-pyramids
OpenCV-画像ピラミッド
ピラミッドは、画像に対する操作です。ここで、
- 入力画像は、最初に特定の平滑化フィルター(例:ガウス、ラプラシアン)を使用して平滑化され、その後平滑化された画像がサブサンプリングされます。 *このプロセスは複数回繰り返されます。
ピラミッド操作中、画像の滑らかさが増し、解像度(サイズ)が低下します。
ピラミッドアップ
Pyramid Upでは、画像は最初にアップサンプリングされ、その後ぼやけます。* imgproc クラスの pyrUP()*メソッドを使用して、画像に対してピラミッドアップ操作を実行できます。 以下は、このメソッドの構文です-
このメソッドは、次のパラメータを受け入れます-
- src -ソース(入力)画像を表すクラス Mat のオブジェクト。
- mat -宛先(出力)イメージを表すクラス Mat のオブジェクト。
- サイズ-画像を拡大または縮小するサイズを表す*サイズ*クラスのオブジェクト。
- borderType -使用される境界線のタイプを表す整数タイプの変数。
例
次のプログラムは、画像に対してピラミッドアップ操作を実行する方法を示しています。
上記のプログラムで指定された入力画像 pyramid_input.jpg が次のものであると仮定します。
出力
プログラムを実行すると、次の出力が得られます-
指定したパスを開くと、次のように出力画像を観察できます-
ピラミッドダウン
ピラミッドダウンでは、画像は最初にぼやけてからダウンサンプリングされます。 imgproc クラスの* pyrDown()*メソッドを使用して、画像に対してピラミッドダウン操作を実行できます。 以下は、このメソッドの構文です-
このメソッドは、次のパラメータを受け入れます-
- src -ソース(入力)画像を表すクラス Mat のオブジェクト。
- mat -宛先(出力)イメージを表すクラス Mat のオブジェクト。
- サイズ-画像を拡大または縮小するサイズを表す*サイズ*クラスのオブジェクト。
- borderType -使用される境界線のタイプを表す整数タイプの変数。
例
次のプログラムは、画像に対してピラミッドダウン操作を実行する方法を示しています。
上記のプログラムで指定された入力画像 pyramid_input.jpg が次のものであると仮定します。
出力
プログラムを実行すると、次の出力が得られます-
指定したパスを開くと、次のように出力画像を観察できます-
平均シフトフィルタリング
平均シフトピラミッド操作では、画像の平均シフトセグメンテーションの最初のステップが実行されます。
このメソッドは、次のパラメータを受け入れます-
- src -ソース(入力)画像を表すクラス Mat のオブジェクト。
- mat -宛先(出力)イメージを表すクラス Mat のオブジェクト。
- sp -空間ウィンドウ半径を表すdouble型の変数。
- sr -カラーウィンドウの半径を表すdouble型の変数。
例
次のプログラムは、特定の画像に対して平均シフトフィルタリング操作を実行する方法を示しています。
上記のプログラムで指定された入力画像 pyramid_input.jpg が次のものであると仮定します。
出力
プログラムを実行すると、次の出力が得られます-
指定したパスを開くと、次のように出力画像を観察できます-