gpt4 book ai didi

opencv - 使用 openCV 检测颜色均匀的 Blob

转载 作者:太空宇宙 更新时间:2023-11-03 22:57:52 26 4
gpt4 key购买 nike

我正在开发一个程序来检测用于遥感的拆分字段(即每个图像中有不止一种颜色/字段类型,其中图像对应于一个农民拥有的土地)并且一直在努力寻找解决方案通过读取图像并使用聚类算法对它们进行分色,然后分析呈现的颜色和形状以尝试对每幅图像进行“评分”并确定是否存在不止一种类型的场。我的程序运行得相当好,尽管它仍然有很多明显的 split 未能检测到。

到目前为止,我一直只使用 C++ 中的标准库来做这件事,但我认为现在我应该使用 openCV 或其他东西,我想知道从哪些技术开始。我看到有一些图像分割和 Blob 检测算法,但我不确定它们是否适用,因为字段之间的边界往往模糊或对比度低。以下是我希望我的程序检测为“ split ”的一些示例图像:

(真彩色陆地卫星)

http://imgur.com/m9qWBcq

enter image description here

http://imgur.com/OwqvUvs

enter image description here

关于我如何以不同的方式解决这个问题有什么想法吗?谢谢!

最佳答案

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/

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