基于MATLAB 的⾼级图像处理技术及应⽤——图像特征分析
图像特征:指图像的原始特征或属性,分为视觉特征和统计特征。
视觉特征:⼈的视觉直接感受到的⾃然特征(如:图像的颜⾊、纹理和形状等);
统计特征:需要通过变换或测量才能得到的⼈为特征(如:、直⽅图等)
颜⾊特征描述及MATLAB 实现⽅法
颜⾊特征属于图像的内部特征,描述了图像或图像区域所对应景物的表⾯性质。
颜⾊特征的表⽰⽅法:颜⾊矩、颜⾊直⽅图、颜⾊相关等。
颜⾊矩
颜⾊矩:以数字⽅法为基础,通过计算矩来描述颜⾊的分布。
⼀阶矩:定义了每个颜⾊分量的平均强度
⼆阶矩:反映待测区域的颜⾊⽅差,即不均匀性
三阶矩:定义了颜⾊分量的偏斜度,即颜⾊的不对称性
利⽤函数mean2()和std()对灰度图像进⾏⼀阶矩、⼆阶矩、三阶矩的计算
基于颜⾊特征识别花朵与叶⼦close all ; clear all ; clc ;J =imread ("flower.jpg");K =imadjust (J ,[70/255 160/255],[]); %灰度级调整:将【70 160】的灰度扩展到【0 255】,增强对⽐度figure ;subplot (121),imshow (J );  subplot (122),imshow (K );[m ,n ]=size (J );  %求图像J 数据矩阵的⼤⼩赋值给[m ,n ],表⽰m *n 维矩阵mm =round (m /2);  %对m /2取整赋值给mm mn =round (n /2);[p ,q ]=size (K );pp =round (p /2);qq =round (q /2);J =double (J );K =double (K );colorsum =0.0;  %给灰度值总和赋0值Javg =mean2(J );  %求⼀阶矩Kavg =mean2(K );Jstd =std (std (J )); %求⼆阶矩Kstd =std (std (K ));for  i =1:mm        %循环求解灰度值总和    for  j =1:mn        colorsum =colorsum +(J (i ,j )-Javg )^3;    end end Jske =(colorsum /(mm *mn ))^(1/3)  %求三阶矩colorsum =0.0;      %给灰度值总和赋0值for  i =1:pp    for  j =1:qq        colorsum =colorsum +(J (i ,j )-Kavg )^3;    end end Kske =(colorsum /(pp *qq ))^(1/3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
颜⾊直⽅图
颜⾊直⽅图:反映了图像颜⾊分布的统计特征,适⽤于描述那些难以⾃动分割的图像和不需要考虑物体空间位置的图像。绘制彩⾊图像的R、G、B分量的直⽅图
通过函数rgb2hsv()将颜⾊空间由RGB转换成HSV,求HSV颜⾊空间下的直⽅图R =I (:,:,1);G =I (:,:,2);B =I (:,:,3);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 ('yezi,jpg');R =J (:,:,1);G =J (:,:,2);B =J (:,:,3);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 ('flower1.jpg');figure ;subplot (131),imshow (K );subplot (132),imshow (I );subplot (133),imshow (J );
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28close all ; clear all ; clc ;I =imread ('flower.jpg');R =I (:,:,1);G =I (:,:,2);B =I (:,:,3);figure ;subplot (121),imshow (I );subplot (122),imshow (R );figure ;subplot (121),imshow (G );subplot (122),imshow (B );figure ;subplot (131),imhist (I (:,:,1));subplot (132),imhist (I (:,:,2));subplot (133),imhist (I (:,:,3));
1
2
3
4
5
6
7
8
9
10
11
12
13
matlab直方图14
15
纹理特征描述及MATLAB 实现⽅法
纹理特征描述图像或图像区域所对应景物的表⾯性质,是从图像中计算出来的⼀个值,它对区域内部灰度级变化的特征进⾏量化。纹理特征:周期性,反映物品的质地,如:粗糙度、光滑度、颗粒度、随机性、规范性。
灰度差分统计法
纹理区域的灰度直⽅图作为纹理特征,利⽤图像直⽅图提取诸如均值、⽅差、能量及熵等特征来描述纹理。
系相关函数法
⾃相关函数作为纹理测度,⼩数值的纹理测度表⽰细纹理,⼤数值测度表⽰粗纹理。
调⽤定义的⾃相关函数zxcor()对砖墙⾯和⼤理⽯纹理进⾏分析hsv =rgb2hsv (J );h =hsv (:,:,1);  %为⾊调d 赋值s =hsv (:,:,2);  %为饱和度s 赋值v =hsv (:,:,3);  %为亮度v 赋值havg =mean2(h );  %求各分量的灰度均值savg =mean2(s );vavg =mean2(v );figure ;subplot (131),imshow (h );subplot (132),imshow
(s );subplot (133),imshow (v );figure ;subplot (131),imhist (h );subplot (132),imhist (s );subplot (133),imhist (v );
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17close all ; clear all ; clc ;J =imread ('wall.jpg');A =double (J );[m ,n ]=size (A );B =A ;C =zeros (m ,n );for  i =1:m -1    for  j =1:n -1        B (i ,j )=A (i +1,j +1);        C (i ,j )=abs (round (A (i ,j )-B (i ,j )));    end end h =imhist (mat2gray (C ))/(m *n );mean =0;con =0;ent =0;for  i =1:256    mean =mean +(i *h (i ))/256;    con =con +i *i *h (i );    if (h (i )>0)        ent =ent -h (i )*log2(h (i ));    end end    mean ,con ,ent subplot (121);imshow ('stone.jpg');subplot (122);imshow ('wall.jpg');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
灰度共⽣矩阵
频谱分析法
形状特征描述及MATLAB 实现⽅法边界表⽰⽅法
边界特征描述
区域特征描述#定义⾃相关函数zxcor(),建⽴zxcor.m ⽂件function [epsilon,eta,C]=zxcor(f,D,m,n)for epsilon=1:D for eta=1:D temp=0;fp=0;for x=1:m for y=1:n if(x+epsilon-1)>m|(y+eta-1)>n f1=0;else f1=f(x,y)*f(x+epsilon-1,y+eta-1);end temp=f1+temp fp=f(x,y)*f(x*y)+fp;end end f2(epsilon,eta)=temp;f3(epsilon,sta)=fp;C(epsilon,eta)=f2(epsilon,eta)/f3(epsilon,eta);end end epsilon=0:(D-1)eta=0:(D-1)f11=imread('wall.jpg');f1=rgb2gray(f11);f1=double(f1);[m,n]=size(f1);D=20;[epsilon1,eta1,C1]=zxcor1(f1,D,m,n);f22=imread('stone.jpg');f2=rgb2gray(f22);f2=double(f2);[m,n]=size(f2);[epsilon2,eta2,C2]=zxcor1(f2,20,m,n);figure;subplot(121);imshow(f11);subplot(122);imshow(f22);figure;subplot(121);mesh(epsilon1,eta1,C1);xlabel('epsilon');ylabel('eta');subplot(122);mesh(epsilon2,eta2,C2);xlabel('epsilon');ylabel('eta');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。