c# - 一种不失色的边缘检测算法

标签 c# image-processing

我正在寻找算法 (C#) 或有关如何检测图像上某些对象边缘的一些信息(目标是黑色素瘤)。我找到了 AForge.NET 库,但我需要在不丢失图像颜色的情况下检测边缘。下面的示例是使用 Paint.NET

编写的

之前:

enter image description here

之后

enter image description here

我只需要那个蓝色边缘(里面的颜色无关紧要)或那个蓝色像素坐标

编辑

Matthew Chambers是的,将图像转换为灰度可以提高算法的有效性。 第一个结果图像基于原始彩色图像,第二个结果图像基于灰度图像。蓝色像素对应的是HSV的Value < 30,大家可以自己看区别。谢谢 m8!

enter image description here

最佳答案

您需要考虑与您要解决的问题相关的几点。

什么是图片中的边缘?一般是颜色变化速度快的时候。 IE。在短时间内从黑暗到光明。

但这有一个问题,即颜色的高变化率实际上是多少。例如,红色和绿色值可以保持不变,而蓝色值以高速率变化。我们会把它算作优势吗? RGB 值的任意组合都可能发生这种情况。

出于这个原因,图像通常会转换为灰度以进行边缘检测 - 否则您可能会针对每个 RGB 值获得不同的边缘结果。

因此,最简单的方法是使用适用于灰度图像的典型边缘检测算法,然后将结果叠加到原始图像上。

关于c# - 一种不失色的边缘检测算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8772999/

相关文章:

opencv - 定向梯度对象检测的直方图

php - 如何动态调整图像大小

c# - 分离 ldap 连接字符串的最佳方法是什么?

c# - 正则表达式 C#

c# - 任务中的错误处理

C# AssemblyInitialize 未运行

java - 双线性插值异常

c# - 对 Web 控件进行单元测试时出现空错误

opencv - 在 OpenCV 中捕获具有更高深度的图像

python - 预测鼠标书写的数字