gpt4 book ai didi

android - Android 中的 Sobel 边缘检测

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:04:34 25 4
gpt4 key购买 nike

作为我为 Android 开发的应用程序的一部分,我想向用户展示他们拍摄的图像的边缘检测版本(类似于下面的示例)。

alt text

为了实现这一目标,我一直在研究 Sobel 运算符以及如何在 Java 中实现它。但是,我发现的许多示例都使用了 AWT ( like this example) 中的对象和方法,它们不是 Android 的一部分。

那么我的问题是,Android 是否提供了上述示例中使用的 AWT 功能的替代方案?如果我们仅使用 Android 内置的库重写该示例,我们将如何着手?

最佳答案

问题和答案已有 3 年历史...@reflog 的解决方案适用于边缘检测等简单任务,但速度很慢。

我在 iOS 上使用 GPUImage 进行边缘检测任务。 Android 上有一个等效的库: https://github.com/CyberAgent/android-gpuimage/tree/master

它是硬件加速的,所以它应该非常快。这是 sobel 边缘检测过滤器: https://github.com/CyberAgent/android-gpuimage/blob/master/library/src/jp/co/cyberagent/android/gpuimage/GPUImageSobelEdgeDetection.java

根据文档,您可以简单地执行此操作:

Uri imageUri = ...;
mGPUImage = new GPUImage(this);
mGPUImage.setGLSurfaceView((GLSurfaceView) findViewById(R.id.surfaceView));
mGPUImage.setImage(imageUri); // this loads image on the current thread, should be run in a thread
mGPUImage.setFilter(new GPUImageSobelEdgeDetection());

// Later when image should be saved saved:
mGPUImage.saveToPictures("GPUImage", "ImageWithFilter.jpg", null);

另一种选择是使用 RenderScript,您可以并行访问每个像素并使用它做任何您想做的事情。我还没有看到任何用它构建的图像处理库。

关于android - Android 中的 Sobel 边缘检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2938452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com