- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个程序来检测用于遥感的拆分字段(即每个图像中有不止一种颜色/字段类型,其中图像对应于一个农民拥有的土地)并且一直在努力寻找解决方案通过读取图像并使用聚类算法对它们进行分色,然后分析呈现的颜色和形状以尝试对每幅图像进行“评分”并确定是否存在不止一种类型的场。我的程序运行得相当好,尽管它仍然有很多明显的 split 未能检测到。
到目前为止,我一直只使用 C++ 中的标准库来做这件事,但我认为现在我应该使用 openCV 或其他东西,我想知道从哪些技术开始。我看到有一些图像分割和 Blob 检测算法,但我不确定它们是否适用,因为字段之间的边界往往模糊或对比度低。以下是我希望我的程序检测为“ split ”的一些示例图像:
(真彩色陆地卫星)
关于我如何以不同的方式解决这个问题有什么想法吗?谢谢!
最佳答案
1) 转换为 HSV 并取 H 或取灰度形式。应用中值滤波器平滑字段 :P 如果图像是高分辨率的。
2) 提取直方图并找出所有的峰值。这些峰表示不同颜色的区域。
3) (A) 现在您可以在这些峰值周围使用简单的阈值处理,然后找到梯形或类似形状的精巧边缘。
--或者--
(B) 在峰值周围找到精巧的边缘,即对于具有最大值 x 的峰值,找到 (x - dx) 到 (x + dx) 范围内的边缘,其中 dx 是一个通过实验找到的小值。
4) 现在您可以提取不同级别/峰值的轮廓数。
我没有添加代码,因为没有指定语言,而且所有这些结构在 OpenCV 中都很容易获得。学习很有趣。欢迎进一步询问。快乐编码。
关于opencv - 使用 openCV 检测颜色均匀的 Blob ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25359109/
我需要在半径R的圆内生成一个均匀随机点。 我意识到,通过在区间 [0 ... 2π) 中选择均匀随机的角度,并在区间 (0 ... R) 中选择均匀随机的半径,我最终会得到更多的点朝向中心,因为对于两
我想在一个正方形内生成 N 个点(均匀地)。我怎样才能做到这一点? 最佳答案 非常酷的问题,比我想象的要困难得多,但这就是想法。有关于 n 边形的论文,但我只会做正方形。因此,圆的均匀分布是一个常见问
考虑以下示例: import itertools import numpy as np a = np.arange(0,5) b = np.arange(0,3) c = np.arange(0,7)
SQL Server 将一组值分成 5 组,每组的 sum(count) 应该均匀分布。 表仅包含 2 列 rid 和 count。 create table t1(rid int, count in
我有以下简单的 HTML。 A B C 和 CSS: ul { width: 100%; display: flex; flex-direction:
我是一名优秀的程序员,十分优秀!