最近在自学Matlab图像处理, 这里就将自己对通过HSV色彩空间提出颜色的一点理解写出来. HSV色彩空间对于光照强度的敏感性很小, 因此, 我们往往会将RGB色彩空间转换成HSV色彩空间, 然后根据颜色对图像中感兴趣的部分进行提取. 下面就以法国国旗为例, 我们对蓝色区域进行提取. 一般情况下,我们在处理之前, 还要进行去噪等处理, 在这里我们就主要是将颜色提取,就省略这部分啦.
原始图像 :
进行提取后的图像:
该表是HSV颜色对应表, 不过matlab中hsv的范围是0–1, 因此, 我们需要对参数进行转换.
在下面, 我会贴出matlab代码,并对里面的部分代码进行解释, 整个算例也会附在下面.
在代码里面, 主要需要注意的是, matlab中的imshow函数是以rgb格式而不是hsv格式进行显示的. 因此, 最后提取出蓝色时需要将hsv转化至rgb才能显示出蓝色, 否则,直接imshow是没有意义的. 此外, ind2sub函数主要是为了让find函数在三维矩阵中也能工作.
算例的下载链接在下面, 我不知道怎么直接把算例作为附件发在博客上, 就只能先上传资源再附上下载链接.
(https://download.csdn.net/my)
大家也可以直接联系我, 我会算例发给你们, 比较下载还要积