通过HSV色彩空间对图像进行特定部分提取的简单实例的matlab实现
2018-11-16 16:50
1091 查看
最近在自学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)
大家也可以直接联系我, 我会算例发给你们, 比较下载还要积分,也不划算.
谢谢大家啦.
clear all; clc; % 读取法国国旗 flag = imread('flag.jpg'); figure; % 展示国旗 imshow(flag); % 将国旗的rgb色彩空间转化至hsv色彩空间 flag_hsv = rgb2hsv(flag); % 创建一个白色图像,将蓝色提取到此处 flag_new = 255*ones(size(flag)); % 将该图像转至hsv色彩空间 flag_new_hsv = rgb2hsv(flag_new); % 找出国旗中蓝色的像素 [row, col] = ind2sub(size(flag_hsv),find(flag_hsv(:,:,1)>0.56 ... & flag_hsv(:,:,1)< 0.69 & flag_hsv(:,:,2)>0.16 & flag_hsv(:,:,3)>0.18)); % 将国旗中的蓝色像素复制到刚才新建的白色图像中 for i = 1 : length(row) flag_new_hsv(row(i),col(i),:) = flag_hsv(row(i),col(i),:); end % 将提取出来的蓝色,转化至rgb空间,进行展示 flag_blue = hsv2rgb(flag_new_hsv); figure imshow(flag_blue) ``
相关文章推荐
- Matlab实现通过图像分块的可变阈值处理,使用Otsu方法进行二值化
- matlab实现RGB与HSV(HSB)、HSL和HSI的色彩空间互转
- 基于HSV色彩空间变换的阴影检测算法——MATLAB实现
- python图像主色调(主颜色)提取,在hsv空间k均值迭代实现
- 通过 JXTA 进行无线通信,第 2 部分: 实现 JXTA-for-JMS
- flipcode进行图像简单反转实现
- Matlab实现均匀量化的简单实例
- Linux的内核空间和用户空间通过内存共享来进行通信的实现
- Matlab fspecial和imfilter对图像进行空间滤波
- 简单的图像显著性区域特征提取方法-----opencv实现LC,AC,FT
- SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 SignalR 简单示例 通过三个DEMO学会SignalR的三种实现方式 SignalR推送框架两个项目永久连接通讯使用 SignalR 集线器简单实例2 用SignalR创建实时永久长连接异步网络应用程序
- 图形图像处理之——实现图像子区域图像的简单提取
- VC编程使用HSB(HSV)色彩空间实现色差比较
- 【学习 OpenCV】—— 色彩空间(RGB、HSV、rgb2hsv、rgb2gray 的实现)
- 利用Matlab对图像进行简单的预处理
- PHP实现AOP的雏形(通过一个简单的实例来理解PHP的AOP)
- 利用keras中image.ImageDataGenerator.flow_from_directory()实现从文件夹中提取图片和进行简单归一化处理
- 机器学习之小波包变换——Python/Matlab实例实现特征提取
- 函数实现既能开辟新空间、又能对原来空间大小进行调整、并且能对新增部分设置为0
- MATLAB图像处理_HSV与RGB颜色空间互转