Android:如何使用opencv获得良好的canny边缘检测的高低阈值

标签 android opencv image-processing edge-detection threshold

我在 android 中使用 opencv 库进行图像处理过程。问题是当我对图像使用 canny 函数时。这是我使用 canny 的代码:

Imgproc.Canny(ImageMat, ImageMat, 0.4, 0.5);

我使用低阈值 0.4 和 0.5 作为高阈值,但图像的结果并不好。我知道我必须更改低阈值和高阈值才能获得良好的结果,但这也必须是其他图像的不同阈值。如何获得该精明过程的动态阈值?
我的项目是 android 上的叶子识别。对不起我的英语不好。

最佳答案

据我所知,唯一比较自动的阈值化方法可能是Otsu手术。您可以在 channel 选择和强度映射(通常是非线性的)而不是阈值试验上投入更多精力。这样做的目的是最大化你的对象和背景之间的差异,这使得阈值更容易和更健壮。为了达到这个目的,您可能需要检查您的叶子图像数据库并大致了解叶子和背景的强度范围。

关于Android:如何使用opencv获得良好的canny边缘检测的高低阈值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20671016/

相关文章:

android - 如何更改 ViewPager 页面?

c++ - 光流opencv错误

android - 如何理解OpenCV程序中引发的此异常

python - 如何为数据增强创建噪声图像

matlab - 在 OpenCV 中显示傅里叶变换

java - 在 Java 中使用 Kotlin 单例

android - 用户卡在加载 Webview 中。在哪里设置超时,以及如何让用户导航出 webview?

java - 形成和执行 if 语句的问题

java - 从现有对象创建新对象,如何使它们独立 - java

c++ - 处理图像的多重转换