Opencv-scharr-operator

提供:Dev Guides
移動先:案内検索

OpenCV-Scharrオペレーター

Scharrは、水平および垂直方向の画像の2次導関数を検出するためにも使用されます。 メソッド* scharr()*を使用して、画像に対してscharr操作を実行できます。 以下は、このメソッドの構文です-

Scharr(src, dst, ddepth, dx, dy)

このメソッドは、次のパラメータを受け入れます-

  • src -ソース(入力)画像を表すクラス Mat のオブジェクト。
  • dst -宛先(出力)イメージを表すクラス Mat のオブジェクト。
  • ddepth -画像の深さを表す整数変数(-1)
  • dx -x導関数を表す整数変数。 (0または1)
  • dy -y導関数を表す整数変数。 (0または1)

次のプログラムは、特定の画像にscharrを適用する方法を示しています。

import org.opencv.core.Core;
import org.opencv.core.Mat;

import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class ScharrTest {

   public static void main( String[] args ) {

     //Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );

     //Reading the Image from the file and storing it in to a Matrix object
      String file ="E:/OpenCV/chap16/sobel_input.jpg";
      Mat src = Imgcodecs.imread(file);

     //Creating an empty matrix to store the result
      Mat dst = new Mat();

     //Applying Box Filter effect on the Image
      Imgproc.Scharr(src, dst, Imgproc.CV_SCHARR, 0, 1);

     //Writing the image
      Imgcodecs.imwrite("E:/OpenCV/chap16/scharr_output.jpg", dst);

      System.out.println("Image processed");
   }
}

上記のプログラムで指定された入力画像 scharr_input.jpg が次のものであると仮定します。

ウィンドウ入力

出力

それを実行すると、次の出力が得られます-

Image Processed

指定したパスを開くと、次のように出力画像を観察できます-

Scharr Output

より多くのscharr誘導体

最後に異なる値をパラメータ(dxとdy)(0と1の間)に渡すと、異なる出力が得られます-

//Applying scharr on the Image
Imgproc.Scharr(src, dst, -1, 1, 1);

以下は、メソッド* scharr()の変数 *dx および dy のさまざまな値とそれぞれの出力をリストした表です。

X-derivative Y-derivative Output
0 1 Scharr 01
1 0 Scharr 10