一、前言

颜色特征属于图像的内部特征,描述了图像或图像区域所对应景物的表面性质。颜色特征与其他视觉特征相比,它对图像的尺寸、方向、视角等变化不敏感,因此颜色特征被广泛应用于图像识别。根据颜色与空间属性的关系,颜色特征的表示方法可以有颜色矩、颜色直方图、颜色相关等几种方法。

二、颜色矩

1、基本原理

颜色矩是以数字方法为基础的,通过计算矩来描述颜色的分布。颜色矩通常直接在RGB空间计算,由于颜色分布信息主要集中在低阶矩,因此,常采用一阶矩、二阶矩和三阶矩来表达图像的颜色分布。它们的定义分别是:

其中,Pij 是第 j 个像素的第 i 个颜色分量,N是像素数量。一阶矩定义了每个颜色分量的平均强度;二阶矩反映待测区域的颜色方差,即不均匀性;三阶矩定义了颜色分量的偏斜度,即颜色的不对称性。颜色矩不能区分颜色区域的空间分布位置。彩色图像的颜色矩一共有9个分量,每个颜色通道均有3个低阶矩。

在MATLAB中,颜色矩的求解方法既可以调用MATLAB自有函数mean2()和std()实现,也可以根据颜色矩定义编程实现

2、matlab实现

(1)利用函数mean2()和std()对灰度图像进行一阶矩、二阶矩和三阶矩的计算

close all;
clear all;
clc;
J=imread('sherlock.jpg');
K=imadjust(J,[70/255 160/255],[]);% imadjust函数既可以调节灰度图像的亮度又可以彩色图像的颜色矩阵(灰度级调整将[70 160]的灰度扩展到[0 255]),增强对比度)subplot(121),imshow(J);
title('原始图像');
subplot(122),imshow(K);
title('对比度增强的图像');
% 计算原始图像的大小
[m,n]=size(J);
mm=round(m/2);
nn=round(n/2);
% 计算对比度增强图像的大小
[p,q]=size(K);
pp=round(p/2);
qq=round(q/2);J=double(J);
K=double(K);
% 求原始图像和对比度增强的图像的一阶矩即均值
Javg=mean2(J);
Kavg=mean2(K);
% 求原始图像和对比度增强的图像的二阶矩即求两次方差
Jstd=std(std(J));
Kstd=std(std(K));
% 求原始图像和对比度增强的图像的三阶矩,此处根据三阶矩公式循环求解
colorsum1=0.0;
for i=1:mmfor j=1:nncolorsum1=colorsum1+(J(i,j)-Javg)^3;end
end
Jske=(colorsum1/(mm*nn)^(1/3));
colorsum2=0.0;
for i=1:ppfor j=1:qqcolorsum2=colorsum2+(K(i,j)-Kavg)^3;end
end
Kske=(colorsum2/(pp*qq)^(1/3));
% 将各值在命令行窗口输出
disp(Javg);
disp(Kavg);
disp('-----');
disp(Jstd);
disp(Kstd);
disp('-----');
disp(Jske);
disp(Kske);

命令行窗口:

  106.1610119.0766-----(:,:,1) =10.1845(:,:,2) =14.0829(:,:,3) =17.6792(:,:,1) =15.3000(:,:,2) =31.1684(:,:,3) =38.8424------3.1918e+08-1.5278e+09

实现效果:

根据颜色特征值分析,颜色的一阶矩运行结果显示第一幅图的值小于第二幅图的值,即第一幅图比第二幅图灰暗些;颜色二阶矩运行结果显示第一幅图的灰度分布比第二幅图的灰度分布均匀些;颜色三阶矩运行结果显示第一幅图灰度偏暗,第二幅图偏亮,二者灰度值偏斜方向相反。

(2)基于颜色特征识别花朵和叶子

% 基于颜色特征识别花朵和叶子
close all;
clear all;
clc;
I=imread('flower.jpg');
R=I(:,:,1);% 求RGB图像的红色分量
G=I(:,:,2);% 求RGB图像的绿色分量
B=I(:,:,3);% 求RGB图像的蓝色分量
R=double(R);G=double(G);B=double(B);
% 求一阶矩
Ravg1=mean2(R);
Gavg1=mean2(G);
Bavg1=mean2(B);
% 求二阶矩
Rstd1=std(std(R));
Gstd1=std(std(G));
Bstd1=std(std(B));J=imread('leaf.jpg');
R=J(:,:,1);% 求RGB图像的红色分量
G=J(:,:,2);% 求RGB图像的绿色分量
B=J(:,:,3);% 求RGB图像的蓝色分量
R=double(R);G=double(G);B=double(B);
% 求一阶矩
Ravg2=mean2(R);
Gavg2=mean2(G);
Bavg2=mean2(B);
% 求二阶矩
Rstd2=std(std(R));
Gstd2=std(std(G));
Bstd2=std(std(B));K=imread('yellowlily.jpg');
subplot(131),imshow(K);
title('原始图像');
subplot(132),imshow(I);
title('花朵图像');
subplot(133),imshow(J);
title('叶子图像');
% 各值在命令行窗口输出
% 花朵的红色分量R占主导地位,且R分量显著高于G和B的值
disp('花朵的一阶矩和二阶矩');
disp(Ravg1);
disp(Gavg1);
disp(Bavg1);
disp(Rstd1);
disp(Gstd1);
disp(Bstd1);
% 叶子以绿色分量G为主,为花朵和叶子的识别提供了很好的依据
disp('叶子的一阶矩和二阶矩');
disp(Ravg2);
disp(Gavg2);
disp(Bavg2);
disp(Rstd2);
disp(Gstd2);
disp(Bstd2);
disp(Ravg1);
disp(Ravg1);

命令行窗口:

花朵的一阶矩和二阶矩156.4057129.95098.605726.778323.56735.1538叶子的一阶矩和二阶矩30.093662.516313.51086.31315.05234.6988156.4057156.4057

实现效果:

程序运行后分别求出花朵和叶子区域的R、G、B分量的颜色特征值,观察可知,在相同光照下,花朵区域以红色分量最大,叶子区域以绿色分量最大,为花朵和叶子的识别提供了很好的依据。

三、颜色直方图

1、基本原理

许多图像识别系统中广泛采用颜色直方图作为图像的颜色特征,它所描述的是不同色彩在整幅图像中所占的比例,而并不关心每种色彩所处的空间位置,即无法描述图像中的对象或物体。颜色直方图反映了图像颜色分布的统计特性,适用于描述那些难以自动分割的图像和不需要考虑物体空间位置的图像。最常用的颜色空间有RGB颜色空间和HSV颜色空间等。

设一幅图像包含M个像素,图像的颜色空间被量化成N个不同颜色。颜色直方图H定义为:

其中,hi 为第 i 种颜色在整幅图像中具有的像素数。颜色直方图归一化为:

由上式可见,颜色直方图所描述的是不同色彩在整幅图像中所占的比例,无法描述图像中的对象或物体。

2、matlab实现

(1)绘制彩色图像的R、G和B分量的直方图

close all;
clear all;
clc;
I=imread('redflower.jpg');
R=I(:,:,1);% 求RGB图像的红色分量
G=I(:,:,2);% 求RGB图像的绿色分量
B=I(:,:,3);% 求RGB图像的蓝色分量figure(1);
subplot(221),imshow(I);
title('原始图像');
subplot(222),imshow(R);
title('R分量灰度图像');
subplot(223),imshow(G);
title('G分量灰度图像');
subplot(224),imshow(B);
title('B分量灰度图像');figure(2);
subplot(131),imhist(I(:,:,1));
title('红色分量直方图');
subplot(132),imhist(I(:,:,2));
title('绿色分量直方图');
subplot(133),imhist(I(:,:,3));
title('蓝色分量直方图');

实现效果:

(2)通过函数rgb2hsv()将颜色空间由RGB转换成HSV,求HSV颜色空间下直方图

% 由于RGB颜色空间不符合人对颜色的感知心理,常采用面向视觉感知的HSV颜色模型对HSV空间进行适当量化后再计算其直方图,以减少计算量
close all;
clear all;
clc;
J=imread('redflower.jpg');
hsv=rgb2hsv(J);
h=hsv(:,:,1);
s=hsv(:,:,2);
v=hsv(:,:,3);
havg=mean2(h);
savg=mean2(s);
vavg=mean2(v);figure(1);
subplot(131),imshow(h);
title('基于色调h的灰度图像');
subplot(132),imshow(s);
title('基于饱和度s的灰度图像');
subplot(133),imshow(v);
title('基于亮度v的灰度图像');figure(2);
subplot(131),imhist(h);
title('显示色调h的直方图');
subplot(132),imhist(s);
title('显示饱和度s的直方图');
subplot(133),imhist(v);
title('显示亮度v的直方图');

实现效果:

图像处理之颜色特征描述相关推荐

  1. 图像特征分析(一):颜色特征描述,颜色矩,颜色直方图(附matlab代码)

    图像分析可以看作是一个图像信息提取的过程,从图像中获取需要的有用的数据.图像特征可以分为视觉特征和统计特征,视觉特征主要是指人的视觉直观感受到的自然特征,比如图像的颜色.纹理.形状等,统计特征是指需要 ...

  2. 传统图像处理之颜色特征

    博主简介 博主是一名大二学生,主攻人工智能研究.感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c++,Python,爬虫等方面知识的分享. 如果有需要的小伙伴可以关注博主,博主会继续更新 ...

  3. 图像特征分析---颜色特征描述---颜色距和颜色直方图

    一.颜色距 转自:https://blog.csdn.net/jaych/article/details/51137341 1.颜色距离 颜色距离指的是两个颜色之间的差距,通常距离越大,两个颜色相差越 ...

  4. 图像特征(一)——颜色特征(颜色直方图,颜色矩,颜色集,颜色聚合向量和颜色相关图)

    本文主要是为了更好地理解图像特征,理解各方法的原理. 转载请注明出处 https://mp.csdn.net/console/editor/html/105090183 图像模式识别的一般步骤为:输入 ...

  5. MPEG-7描述子(4)——颜色结构描述子CSD

    颜色结构描述符是一个颜色特征描述符,它既包括颜色内容信息(类似于颜色直方图),又包括内容的结构信息.其主要功能是图像与图像的匹配,一般用于静态图像检索.它通过由几个图像采样组成的结构元素,表达了一幅图 ...

  6. 基于颜色布局描述符(CLD)图像特征提取算法使用Python实现简单的人脸检测功能并使用PyQt5构建简单的功能界面(数字图像处理课程实验)

    文章目录 一.环境准备 二.数据集准备 三.项目结构 四.完整参考代码 imgCode/testUI3.py imgCode/test2.py 五.运行结果 测试一: 测试二 六.参考链接 一.环境准 ...

  7. 图像处理之特征描述与匹配

    本节中主要介绍以下两点: BRIEF算法介绍 ORB介绍 一.BRIEF(二进制的鲁棒独立基本特征)的原理介绍 **BRIEF提供了一种直接查找二进制字符串而无需查找描述符的快捷方式.**它需要平滑的 ...

  8. 基于颜色特征,形状特征和纹理特征的数字图像的检索(Digital Image Retrieval)MATLAB GUI实现

    ** 数字图像的检索 下载地址:代码.数据集下载地址 如需论文请联系:hqucuihao@163.com ** 1. 摘要 随着互联网发展的日新月异,人们对于信息的需求不再是简单的文字,大量的图像.语 ...

  9. 常用的图像特征颜色特征、纹理特征、形状特征、空间关系特征

    http://www.360doc.com/content/10/0601/10/1412027_30625801.shtml 常用的图像特征有颜色特征.纹理特征.形状特征.空间关系特征. 一 颜色特 ...

最新文章

  1. 枚举 ---- B. RPG Protagonist[Educational Codeforces Round 94 (Rated for Div. 2)]数学枚举
  2. Tengine怎么去安装第三方模块、以及安装源码中的模块
  3. PyTorch tensorboard报错:TensorBoard logging requires TensorBoard version 1.15 or above
  4. 【android】窗口管理
  5. python爬虫实训日志_Python学习学习日志——爬虫《第一篇》(BeautifulSoup)
  6. android tcp socket框架_socket网络编程知识梳理,让你学会造轮子的能力
  7. Python 列表 list 数组 array
  8. vs2008智能提示jQuery的设置注意事项
  9. pytorch实现基本AutoEncoder与案例
  10. python安卓自动化实现方法_带你用 Python 实现自动化群控(入门篇)
  11. nacos加载多配置集
  12. 印第安纳大学计算机语言学,语言学
  13. github leaf项目怎么用_这份GitHub上价值49K的SpringBoot2+Thymeleaf企业应用实战,真香...
  14. 微信模板消息,动态配置
  15. 实现黑客帝国中的代码雨 快进来学(附源代码)
  16. 封神:人在朝歌,皇宫签到六十年
  17. 问题 D: 零起点学算法89——程序设计竞赛
  18. 加装固态,重装系统(双系统)
  19. PostgreSQL 从备份原理 到 PG_PROBACKUP
  20. usb storage驱动分析

热门文章

  1. 创新实训(1)——小组成员初步讨论,进行小组分工,明确项目范围项目范围
  2. 爱徒难担大任,“药神”孙飘扬被迫出山
  3. 【绘制】HTML5 Canvas二次方贝塞尔曲线,实现复选框对勾对号,实现圆角三角形,圆角矩形(图文,示例)
  4. python关联规则apriori算法_Python --深入浅出Apriori关联分析算法(二) Apriori关联规则实战...
  5. java 圆弧_从圆弧区域中寻找中心角
  6. 专业的人脸拼接工具:Morph Age mac版
  7. 局域网对战平台 linux,在Linux下可用Wine安装和运行完美对战平台、金山游侠2002体验版...
  8. MAT内存分析工具-独立版安装教程及实战教学
  9. 防火防盗防辅导作业,“因材施教”的智慧课堂来了
  10. 微信开发者工具设置制表符大小为2