もう 1 つのオプションは、Android 向けの優れた実装を持つ OpenCV を使用することです。
このImgproc.Sobel()
メソッドは、リソースまたはビットマップから簡単にロードできる「Mat」タイプの形式で画像を取得します。入力 Mat は、opencv でも作成できるグレースケール イメージである必要があります。
Mat src = Highgui.imread(getClass().getResource(
"/SomeGrayScaleImage.jpg").getPath());
次に、その上でソーベルエッジ検出器を実行し、結果を新しいマットに保存します。同じ画像深度を維持したい場合は、これで十分です...
Mat dst;
int ddepth = -1; // destination depth. -1 maintains existing depth from source
int dx = 1;
int dy = 1;
Imgproc.Sobel(src, dst, ddepth, dx, dy);
いくつかの参考資料はこちら:
http://docs.opencv.org/java/org/opencv/imgproc/Imgproc.html#Sobel(org.opencv.core.Mat,%20org.opencv.core.Mat,%20int, %20int,%20int)
Android Studio での gradle ビルドの場合、さまざまな場所から Java 用にビルドされた opencv ライブラリを取り込むことができますが、最近のビルドもホストしています。build.gradle ファイルで、次のように依存関係を追加できます... そうしないと、少し注意が必要です。
dependencies {
compile 'com.iparse.android:opencv:2.4.8'
}
Eclipse を使用している場合は、Opencv Web サイトで Android での Opencv の使用に関する詳細を確認できます: http://opencv.org/platforms/android.html