标签:style blog ar color os sp for on div
A=imread(‘e:\1\1.tif‘);%读入图片“1.tif” B=rgb2gray(A);%将图像转换成灰度图像 subplot(121); imshow(A);%显示原图像 title(‘原图像‘);%命名 subplot(122) imshow(B);%显示转换后的灰度图像 title(‘转化后的灰度图像‘); C=imhist(B);%灰度图像直方图 figure(2),imhist(B);%显示 title(‘灰度图像的直方图‘); figure(3),imhist(B); title(‘曲线拟合‘); hold on; [y,x]=imhist(B); po=polyfit(x,y,6); plot(x,y,‘r‘); me=mean(C);%直方图均值 va=var(C);%直方图方差 st=std(C);%直方图标准差 disp([‘均值=‘,num2str(me)]); disp([‘方差=‘,num2str(va)]); disp([‘标准差=‘,num2str(st)]); %求直方图波峰值(一副图像中同一种灰度值出现最多的位置点) [Y X]=imhist(B);%提取直方图的纵坐标Y、横坐标X p=max(Y);%找到峰值 gray_value=find(Y==p);%得到相应的横坐标,即灰度值 [N,M]=find(B==gray_value);%在图像中找到等于该灰度值的点的坐标 figure(4):imshow(B);%显示原图 hold on; plot(M,N,‘r*‘);%在原图上画出种子点 title(‘同一灰度出现最多位置点分布图‘); D=histeq(B);%直方图均衡化 figure(5):imshow(D);%显示 title(‘直方图均衡化后的图像‘); figure(6),imhist(D);%显示均衡化后的直方图 title(‘均衡化后的灰度图像直方图‘); figure(10);mesh(B); %加入椒盐噪声 Bn=imnoise(B,‘salt & pepper‘,0.02); Bn2=im2double(Bn); figure(7),subplot(231); imshow(Bn); title(‘加入椒盐噪声‘); %中值滤波 I=medfilt2(Bn); subplot(232); imshow(I); title(‘中值滤波去噪‘); %均值滤波 I1=fspecial(‘average‘,[5 5]); J1=filter2(I1,Bn2); subplot(233); imshow(J1); title(‘均值滤波去噪‘); %高斯滤波 I2=fspecial(‘gaussian‘,[5 5]); J2=filter2(I2,Bn2); subplot(234); imshow(J2); title(‘高斯滤波去噪‘); %sobel滤波 I3=fspecial(‘sobel‘); J3=filter2(I3,Bn2); subplot(235); imshow(J3); title(‘sobel滤波去噪‘); %拉普拉丝滤波 I4=fspecial(‘laplacian‘,0.5); J4=filter2(I4,Bn2); subplot(236); imshow(J4); title(‘拉普拉斯滤波去噪‘); %sobel、robert、prewitt、log和canny算子检测图像边缘 BW1=edge(B,‘sobel‘); BW2=edge(B,‘roberts‘); BW3=edge(B,‘prewitt‘); BW4=edge(B,‘log‘); BW5=edge(B,‘canny‘); figure,subplot(2,3,1); imshow(B); title(‘原图像‘); subplot(2,3,2); imshow(BW1); title(‘sobel算子提取‘); subplot(2,3,3); imshow(BW2); title(‘roberts算子提取‘); subplot(2,3,4); imshow(BW3); title(‘prewitt算子提取‘); subplot(2,3,5); imshow(BW4); title(‘log算子提取‘); subplot(2,3,6); imshow(BW5); title(‘canny算子提取‘); %直方图均衡化 [height,width] = size(T); %进行像素灰度统计; s = zeros(1,256);%统计各灰度数目,共256个灰度级 for i = 1:height for j = 1: width s(T(i,j) + 1) = s(T(i,j) + 1) + 1;%对应灰度值像素点数量增加一 end end %计算灰度分布密度 p = zeros(1,256); for i = 1:256 p(i) = s(i) / (height * width * 1.0); end %计算累计直方图分布 c = zeros(1,256); c(1) = p(1); for i = 2:256 c(i) = c(i - 1) + p(i); end %累计分布取整,将其数值归一化为1~256 c = uint8(255 .* c + 0.5); %对图像进行均衡化 for i = 1:height for j = 1: width T(i,j) = c(T(i,j)+1); end end imshow(T)%显示均衡化后的图像
A=imread(‘e:\1\1.tif‘);%读入图片“1.tif”
B=rgb2gray(A);%将图像转换成灰度图像
subplot(121);
imshow(A);%显示原图像
title(‘原图像‘);%命名
subplot(122)
imshow(B);%显示转换后的灰度图像
title(‘转化后的灰度图像‘);
C=imhist(B);%灰度图像直方图
figure(2),imhist(B);%显示
title(‘灰度图像的直方图‘);
figure(3),imhist(B);
title(‘曲线拟合‘);
hold on;
[y,x]=imhist(B);
po=polyfit(x,y,6);
plot(x,y,‘r‘);
me=mean(C);%直方图均值
va=var(C);%直方图方差
st=std(C);%直方图标准差
disp([‘均值=‘,num2str(me)]);
disp([‘方差=‘,num2str(va)]);
disp([‘标准差=‘,num2str(st)]);
%求直方图波峰值(一副图像中同一种灰度值出现最多的位置点)
[Y X]=imhist(B);%提取直方图的纵坐标Y、横坐标X
p=max(Y);%找到峰值
gray_value=find(Y==p);%得到相应的横坐标,即灰度值
[N,M]=find(B==gray_value);%在图像中找到等于该灰度值的点的坐标
figure(4):imshow(B);%显示原图
hold on;
plot(M,N,‘r*‘);%在原图上画出种子点
title(‘同一灰度出现最多位置点分布图‘);
D=histeq(B);%直方图均衡化
figure(5):imshow(D);%显示
title(‘直方图均衡化后的图像‘);
figure(6),imhist(D);%显示均衡化后的直方图
title(‘均衡化后的灰度图像直方图‘);
figure(10);mesh(B);
%加入椒盐噪声
Bn=imnoise(B,‘salt & pepper‘,0.02);
Bn2=im2double(Bn);
figure(7),subplot(231);
imshow(Bn);
title(‘加入椒盐噪声‘);
%中值滤波
I=medfilt2(Bn);
subplot(232);
imshow(I);
title(‘中值滤波去噪‘);
%均值滤波
I1=fspecial(‘average‘,[5 5]);
J1=filter2(I1,Bn2);
subplot(233);
imshow(J1);
title(‘均值滤波去噪‘);
%高斯滤波
I2=fspecial(‘gaussian‘,[5 5]);
J2=filter2(I2,Bn2);
subplot(234);
imshow(J2);
title(‘高斯滤波去噪‘);
%sobel滤波
I3=fspecial(‘sobel‘);
J3=filter2(I3,Bn2);
subplot(235);
imshow(J3);
title(‘sobel滤波去噪‘);
%拉普拉丝滤波
I4=fspecial(‘laplacian‘,0.5);
J4=filter2(I4,Bn2);
subplot(236);
imshow(J4);
title(‘拉普拉斯滤波去噪‘);
%sobel、robert、prewitt、log和canny算子检测图像边缘
BW1=edge(B,‘sobel‘);
BW2=edge(B,‘roberts‘);
BW3=edge(B,‘prewitt‘);
BW4=edge(B,‘log‘);
BW5=edge(B,‘canny‘);
figure,subplot(2,3,1);
imshow(B);
title(‘原图像‘);
subplot(2,3,2);
imshow(BW1);
title(‘sobel算子提取‘);
subplot(2,3,3);
imshow(BW2);
title(‘roberts算子提取‘);
subplot(2,3,4);
imshow(BW3);
title(‘prewitt算子提取‘);
subplot(2,3,5);
imshow(BW4);
title(‘log算子提取‘);
subplot(2,3,6);
imshow(BW5);
title(‘canny算子提取‘);
%直方图均衡化
[height,width] = size(T);
%进行像素灰度统计;
s = zeros(1,256);%统计各灰度数目,共256个灰度级
for i = 1:height
for j = 1: width
s(T(i,j) + 1) = s(T(i,j) + 1) + 1;%对应灰度值像素点数量增加一
end
end
%计算灰度分布密度
p = zeros(1,256);
for i = 1:256
p(i) = s(i) / (height * width * 1.0);
end
%计算累计直方图分布
c = zeros(1,256);
c(1) = p(1);
for i = 2:256
c(i) = c(i - 1) + p(i);
end
%累计分布取整,将其数值归一化为1~256
c = uint8(255 .* c + 0.5);
%对图像进行均衡化
for i = 1:height
for j = 1: width
T(i,j) = c(T(i,j)+1);
end
end
imshow(T)%显示均衡化后的图像
标签:style blog ar color os sp for on div
原文地址:http://www.cnblogs.com/Qianqian-Dong/p/4141007.html