Matlab图像处理(灰度特征的提取)
1、将彩色图片转化为灰度图片
I=imread('crack.jpg'); %%读取图片
imshow(I); %%显示图片
imhist(I)
I1 = rgb2gray(I) %%将真彩色图像 RGB 转换为灰度图像
imshow(I1);
2、提取灰度特征(均值、方差、熵、能量)
close all;
clear;
clc;
i=imread('crack.jpg');
i=double(i);
[m,n]=size(i);
s=0;
for x=1:m
for y=1:n
s=s+i(x,y);
end
end
a=mean(mean(i));
a;
%%%%%%%%%%%%方差
close all;
clear;
clc;
i=imread('crack.jpg');
i=double(i);
avg=mean2(i);
[m,n]=size(i);
s=0;
for x=1:m
for y=1:n
s=(s+i(x+y)-avg)^2;
end
end
b=var(i(:));
b
%%% 熵
clc;clear;
close all;
I=imread('crack.jpg');
[c,l]=size(I);
Img_size=c*l;
G=256;
H_x=0;
nk=zeros(G,1);
for i=1:c
for j=1:l
Img_level=I(i,j)+1;
nk(Img_level)=nk(Img_level)+1;
end
end
for k=1:G
Ps(k)=nk(k)/Img_size;
if ne(Ps(k),0);
H_x=-Ps(k)*log2(Ps(k))+H_x;
end
end
H_x
%%%%%%%%能量
im=imread('crack.jpg');
a=tabulate(im(:));
n=sum(a(:,3).^2)/10;