Gitee地址:https://gitee.com/jzhou955/edge_detection.git
欢迎star or fork。
项目需求
- 检测图片中特定部分的轮廓。
- 单纯用边缘提取算子处理图片得到的效果并不理想。由于图片边缘两边的颜色差异较大,考虑用色域分离的方法进行边缘提取。
项目记录
-
RGB:
- RGB 是我们接触最多的颜色空间,由三个通道表示一幅图像,分别为红色(R ),绿色(G)和蓝色(B)。这三种颜色的不同组合可以形成几乎所有的其他颜色。
- RGB 颜色空间是图像处理中最基本、最常用、面向硬件的颜色空间,比较容易理解。
- RGB 颜色空间利用三个颜色分量的线性组合来表示颜色,任何颜色都与这三个分量有关,而且这三个分量是高度相关的,所以连续变换颜色时并不直观,想对图像的颜色进行调整需要更改这三个分量才行。
- 自然环境下获取的图像容易受自然光照、遮挡和阴影等情况的影响,即对亮度比较敏感。而 RGB 颜色空间的三个分量都与亮度密切相关,即只要亮度改变,三个分量都会随之相应地改变,而没有一种更直观的方式来表达。
- 但是人眼对于这三种颜色分量的敏感程度是不一样的,在单色中,人眼对红色最不敏感,蓝色最敏感,所以 RGB 颜色空间是一种均匀性较差的颜色空间。如果颜色的相似性直接用欧氏距离来度量,其结果与人眼视觉会有较大的偏差。对于某一种颜色,我们很难推测出较为精确的三个分量数值来表示。
- 所以,RGB 颜色空间适合于显示系统,却并不适合于图像处理。
-
HSV:
- 在 HSV 颜色空间下,比 BGR 更容易跟踪某种颜色的物体,常用于分割指定颜色的物体。
- HSV 表达彩色图像的方式由三个部分组成:
- Hue(色调、色相)
- Saturation(饱和度、色彩纯净度)
- Value(明度)
- 用下面这个圆柱体来表示 HSV 颜色空间,圆柱体的横截面可以看做是一个极坐标系 ,H 用极坐标的极角表示,S 用极坐标的极轴长度表示,V 用圆柱中轴的高度表示。
- Hue 用角度度量,取值范围为0~360°,表示色彩信息,即所处的光谱颜色的位置,表示如下:
- 颜色圆环上所有的颜色都是光谱上的颜色,从红色开始按逆时针方向旋转,Hue=0 表示红色,Hue=120 表示绿色,Hue=240 表示蓝色等等。
- 在 GRB中 颜色由三个值共同决定,比如黄色为即 (255,255,0);在HSV中,黄色只由一个值决定,Hue=60即可。
- HSV 圆柱体的半边横截面(Hue=60):