I=imread('C:\Users\David\Desktop\matlab临时\007.jpg');
if numel(size(I)>2)%如果是彩色图像先转为灰度图
I=rgb2gray(I);
end
figure(1);imshow(I);title('原来的图像为');
[m,n]=size(I);
I=im2double(I);%将图像转换为double类型
I=imnoise(I,'gaussian',0,0.05);
dimg = I;
for i=2:m-1
for j=2:n-1
dimg(i,j)=(dimg(i,j)+dimg(i+1,j)+dimg(i,j+1)+dimg(i+1,j+1)+dimg(i+1,j-1)+...+
dimg(i,j-1)+dimg(i-1,j-1)+dimg(i-1,j+1)+dimg(i-1,j))/9;%先分别写出八个方向的坐标
end
end
figure(2);imshow(I);title('添加高斯噪声后的图像为:');
figure(3);imshow(dimg);title('增强后的图像为:');
figure(4);imhist(dimg);title('增强后的图像的直方图为:');
2)、I=imread('C:\Users\David\Desktop\matlab临时\008.jpg');
if numel(size(I)>2)%如果是彩色图像先转为灰度图
I=rgb2gray(I);
end
figure(1);imhist(I);title('原来图像直方图为:');
[m,n]=size(I);
I=im2double(I);
v=0.6;
fa=1/gamma(2-v);
h1=fa;
h2 = fa*(2^(1-v)-2);
h3 = fa*((1-v)*(2^(-v))-(2^(1-v))+1);
dimg = I;
for i=3:m-2
for j=3:n-2
dimg(i,j)=(h1*dimg(i,j)+h2*dimg(i+1,j)+h3*dimg(i+2,j)+...+
h1*dimg(i,j)+h2*dimg(i-1,j)+h3*dimg(i-2,j)+...+
h1*dimg(i,j)+h2*dimg(i+1,j-1)+h3*dimg(i+2,j-2)+...+
h1*dimg(i,j)+h2*dimg(i,j-1)+h3*dimg(i,j-2)+...+
h1*dimg(i,j)+h2*dimg(i,j+1)+h3*dimg(i,j+2)+...+
h1*dimg(i,j)+h2*dimg(i-1,j+1)+h3*dimg(i-2,j+2)+...+
h1*dimg(i,j)+h2*dimg(i-1,j-1)+h3*dimg(i-2,j-2)+...+
h1*dimg(i,j)+h2*dimg(i+1,j+1)+h3*dimg(i+2,j+2))/(8*(h1+h2+h3));
end
end
figure(1);imshow(I);title('原来图像直方图为:');
figure(2);imshow(dimg);title('增强后的图像为:');
figure(3);imhist(dimg);title('增强后的图像的直方图为:');
一、实训项目名称
数字图像的增强处理
二、实训目的
1、 熟悉和掌握Matlab能处理的图像格式。
2、 掌握在Matlab中图像的读取。
3、 掌握数字图像的增强技术
4、 能编程实现图像的平滑运算
三、实训主要仪器设备、软件等
1、Matlab软件
2、windows系统
四、实训内容及步骤
1、 原理:
2、 流程图:
3、 程序:
1)、
I=imread('C:\Users\David\Desktop\matlab临时\007.jpg');
if numel(size(I)>2)%如果是彩色图像先转为灰度图
I=rgb2gray(I);
end
figure(1);imshow(I);title('原来的图像为');
[m,n]=size(I);
I=im2double(I);%将图像转换为double类型
I=imnoise(I,'gaussian',0,0.05);
dimg = I;
for i=2:m-1
for j=2:n-1
dimg(i,j)=(dimg(i,j)+dimg(i+1,j)+dimg(i,j+1)+dimg(i+1,j+1)+dimg(i+1,j-1)+...+
dimg(i,j-1)+dimg(i-1,j-1)+dimg(i-1,j+1)+dimg(i-1,j))/9;%先分别写出八个方向的坐标
end
end
figure(2);imshow(I);title('添加高斯噪声后的图像为:');
figure(3);imshow(dimg);title('增强后的图像为:');
figure(4);imhist(dimg);title('增强后的图像的直方图为:');
2)、I=imread('C:\Users\David\Desktop\matlab临时\008.jpg');
if numel(size(I)>2)%如果是彩色图像先转为灰度图
I=rgb2gray(I);
end
figure(1);imhist(I);title('原来图像直方图为:');
[m,n]=size(I);
I=im2double(I);
v=0.6;
fa=1/gamma(2-v);
h1=fa;
h2 = fa*(2^(1-v)-2);
h3 = fa*((1-v)*(2^(-v))-(2^(1-v))+1);
dimg = I;
for i=3:m-2
for j=3:n-2
dimg(i,j)=(h1*dimg(i,j)+h2*dimg(i+1,j)+h3*dimg(i+2,j)+...+
h1*dimg(i,j)+h2*dimg(i-1,j)+h3*dimg(i-2,j)+...+
h1*dimg(i,j)+h2*dimg(i+1,j-1)+h3*dimg(i+2,j-2)+...+
h1*dimg(i,j)+h2*dimg(i,j-1)+h3*dimg(i,j-2)+...+
h1*dimg(i,j)+h2*dimg(i,j+1)+h3*dimg(i,j+2)+...+
h1*dimg(i,j)+h2*dimg(i-1,j+1)+h3*dimg(i-2,j+2)+...+
h1*dimg(i,j)+h2*dimg(i-1,j-1)+h3*dimg(i-2,j-2)+...+
h1*dimg(i,j)+h2*dimg(i+1,j+1)+h3*dimg(i+2,j+2))/(8*(h1+h2+h3));
end
end
figure(1);imshow(I);title('原来图像直方图为:');
figure(2);imshow(dimg);title('增强后的图像为:');
figure(3);imhist(dimg);title('增强后的图像的直方图为:');
2、 结论(若干图像,一些结论)
T1
T2
转载于:https://www.cnblogs.com/D4vid1ee/p/7887151.html