c++ - 如何检测与邻居截然不同的点

标签 c++ algorithm image image-processing opencv

我正在做一些图像处理,并试图跟踪与下面圈出的点类似的点,一个直径为几个像素的非常暗的点,所有相邻像素都是亮的。我确定有为此设计的算法和方法,但我只是不知道它们是什么。我不认为边缘检测会起作用,因为我只想要小点。我已经阅读了一些关于形态学运算符的内容,这些是合适的方法吗?

谢谢

wavelet filtered image

最佳答案

遍历图像中的每个像素。当您完成对像素的考虑后,将其标记为“已使用”(将其更改为某个标记值,或将此数据保存在与图像平行的单独数组中)。

当您遇到暗像素时,执行 flood-fill在其上,将所有这些像素标记为“已使用”,并跟踪填充了多少像素。在泛光填充期间,确保如果您正在考虑的像素不暗,则它足够亮。

填充后,您将知道所填充的暗区的大小,以及填充的边界是否完全是亮像素。现在,继续原来的循环,跳过“已用”像素。

关于c++ - 如何检测与邻居截然不同的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3425633/

相关文章:

java - 当从 Java 剪贴板对象中检索为图像时,来自 Outlook 的剪贴板副本始终设置为黑色背景

C++ 绑定(bind)到 weak_ptr 不工作

C++ 范围问题 : Creating a matrix class without wasting space

C++:单例类设计(错误:未解析的外部符号)

php - PHP 中的 password_hash() 将算法设置为 '1'

java - 使用java将图像转换为base64

c++ - SFML 2.1 RenderWindow 链接错误

javascript - 在数组中查找重复对

algorithm - 在 Haskell 中具有良好性能的简单循环

javascript - 即使某些图像存在,也不会在 react 应用程序中加载