数字图像处理_matlab
来源:互联网 发布:ios11更新不了软件 编辑:程序博客网 时间:2024/05/29 16:52
//读写图像文件
1.imread读入各种图像文件
a=imread(‘e:\1.tif’)
2.imwrite写入各种图像文件
imwrite(a,’e:\1.tif’,’tif’)
3.imfinfo读取图像文件的有关信息
imfinfo(‘e:\1.tif’)
//图像的显示
1.image函数是matlab提供的最原始的图像显示函数,如:
a=[1,2,3,4;4,5,6,7;8,9,10,11];
image(a);
2.imshow函数用于图像文件的显示,如:
i=imread(‘e:\1.tif’);
imshow(i);
title(‘原图像’)%加入图像标题
3.colorbar
colorbar函数用显示图像的颜色条,如:
i=imread(‘e:\1.tif’);
imshow(i);
colorbar;
4.figure
figure函数用于设定图像显示窗口,如:figure(1);/figure(2);
5.subplot
把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。
Subplot(m,n,p)分成m*n个小窗口,在第p个窗口中创建坐标轴为当前坐标轴,用于显示图形。
6.plot
绘制二维图形
plot(y)
Plot(x.y) xy 可以是向量、矩阵。
//图形类型转换
1.rgb2gray
把真彩图像转换为灰度图像
i=rgb2gray(j)
2.im2bw
通过阈值化方法把图像转换为二值图像
I=im2bw(j,level)
Level表示灰度阈值,取值范围0~1(即0.n),表示阈值取自原图像灰度范围的n%
3.imresize
改变图像的大小
I=imresize(j,[m,n]) 将图像j大小调整为m行n列
//图像运算
1.imadd
两幅图像相加,要求同样大小,同种数据类型
Z=imadd(x,y) 表示图像x+y
2.imsubstract
两幅图像相减,要求同样大小,同种数据类型
Z=imsubtract(x,y) 表示图像x-y
3.immultiply
Z=immultiply(x,y) 表示图像x*y
4.imdivide
Z=imdivide(x,y) 表示图像x/y
//图像的变换
1.fft2——用于数字图像的二维傅里叶变换,如:
i=imread(‘e:\1.tif’);
j=fft2(i);
由于matlab无法显示复数图像,因此变换后的结果还需进行求模运算,即调用abs函数。
之后常常还进行对数变换,即调用log函数,以减缓傅里叶谱的快速衰减,更好地显示高频信息。
2.ifft2
ifft2函数用于数字图像的二维傅里叶反变换,如:
i=imread(‘e:\1.tif’);
j=fft2(i);
k=ifft2(j);
3.fftshift——用于将变换后图像频谱中心从矩阵的原点移动到矩阵的中心
B=fftshift(i)
4.利用fft2计算二维卷积
利用fft2函数计算二维卷积,如:
a=[8,1,6;3,5,7;4,9,2];
b=[1,1,1;1,1,1;1,1,1];
a(8,8)=0;
b(8,8)=0;
c=ifft2(fft2(a).*fft2(b));
c=c(1:5,1:5);
利用conv2(二维卷积函数)校验,如:
a=[8,1,6;3,5,7;4,9,2];
b=[1,1,1;1,1,1;1,1,1];
c=conv2(a,b);
1、读入一副RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成3个子窗口来分别显示RGB图像和灰度图像,注上文字标题。
a=imread(‘e:\junning.jpg’);
i=rgb2gray(a);
I=im2bw(a,0.5);
subplot(1,3,1);imshow(a);title(‘原图像’);
subplot(1,3,2);imshow(i);title(‘灰度图像’);
subplot(1,3,3);imshow(I);title(‘二值图像’);
2、对两幅不同图像执行+、-、*、/ 操作,在同一个窗口内分成5个子窗口来分别显示,注上文字标题。
a=imread(‘e:\junning.jpg’);
A=imresize(a,[800 800]);
b=imread(‘e:\junning2.jpg’);
B=imresize(b,[800 800]);
Z1=imadd(A,B);
Z2=imsubtract(A,B);
Z3=immultiply(A,B);
Z4=imdivide(A,B);
subplot(1,3,1);imshow(A);title(‘原图像A’);
subplot(1,3,2);imshow(B);title(‘原图像B’);
subplot(1,3,3);imshow(Z1);title(‘加法图像’);
subplot(1,3,4);imshow(Z2);title(‘减法图像’);
subplot(1,3,5);imshow(Z3);title(‘乘法图像’);
subplot(1,3,6);imshow(Z2);title(‘除法图像’);
3、对一副图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成4个子窗口来分别显示,注上文字标题。
a=imread(‘e:\1.tif’);
m=imadjust(a,[,],[0.5;1]); %图像变亮
n=imadjust(a,[,],[0;0.5]); %图像变暗
g=255-a; %负片效果
subplot(2,2,1);imshow(a);title(‘原图像’);
subplot(2,2,2);imshow(m);title(‘图像变亮’);
subplot(2,2,3);imshow(n);title(‘图像变暗’);
subplot(2,2,4);imshow(g);title(‘负片效果’);
4、对一副图像进行平移,显示原始图像与处理后的图像,分别对其进行傅里叶变换,显示变换后的效果,分析原图的傅里叶谱与平移后的傅里叶频谱的对应关系。
s=imread(‘e:\yuanyuan.jpg’); %读入原图像
i=rgb2gray(s);
i=double(i);
j=fft2(i); %傅里叶变换
k=fftshift(j); %直流分量移到频谱中心
l=log(abs(k)); %对数变换
m=fftshift(j); %直流分量移到频谱中心
RR=real(m); %取傅里叶变换的实部
II=image(m); %取傅里叶变换的需部
A=sqrt(RR.^2+II.^2); %计算频谱府幅值
A=(A-min(min(A)))/(max(max(A)))*255; %归一化
b=circshift(s,[800 450]); %对图像矩阵im中的数据进行移位操作
b=rgb2gray(b);
b=double(b);
c=fft2(b);
e=fftshift(c);
l=log(abs(e));
f=fftshift(c);
WW=real(f);
ZZ=image(f);
B=sqrt(WW.^2+ZZ.^2);
B=(B-min(min(B)))/(max(max(B)))*255;
subplot(2,2,1);imshow(s);title(‘原图像’);
subplot(2,2,2);imshow(uint8(b));title(‘平移图像’);
subplot(2,2,3);imshow(A);title(‘离散傅里叶频谱’);
subplot(2,2,4);imshow(B);title(‘平移图像离散傅里叶频谱’);
5、对一副图像进行旋转,显示原始图像与处理后的图像,分别对其进行傅里叶变换,显示变换后的效果,分析原图的傅里叶谱与平移后的傅里叶频谱的对应关系。
s=imread(‘e:\lunmei.jpg’); %读入原图像
i=rgb2gray(s);
i=double(i);
j=fft2(i); %傅里叶变换
k=fftshift(j); %直流分量移到频谱中心
l=log(abs(k)); %对数变换
m=fftshift(j); %直流分量移到频谱中心
RR=real(m); %取傅里叶变换的实部
II=image(m); %取傅里叶变换的需部
A=sqrt(RR.^2+II.^2); %计算频谱府幅值
A=(A-min(min(A)))/(max(max(A)))*255; %归一化
b=imrotate(s,-90); %对图像矩阵im中的数据进行移位操作
b=rgb2gray(b);
b=double(b);
c=fft2(b);
e=fftshift(c);
l=log(abs(e));
f=fftshift(c);
WW=real(f);
ZZ=image(f);
B=sqrt(WW.^2+ZZ.^2);
B=(B-min(min(B)))/(max(max(B)))*255;
subplot(2,2,1);imshow(s);title(‘原图像’);
subplot(2,2,2);imshow(uint8(b));title(‘平移图像’);
subplot(2,2,3);imshow(A);title(‘离散傅里叶频谱’);
subplot(2,2,4);imshow(B);title(‘平移图像离散傅里叶频谱’);
- 数字图像处理_matlab
- 数字图像和数字图像处理
- 数字图像处理
- 数字图像处理
- 数字图像处理
- 数字图像处理
- 数字图像处理
- 数字图像处理
- 数字图像处理
- 数字图像处理
- 数字图像处理
- 数字图像处理
- 数字图像处理
- 数字图像处理
- 数字图像处理
- 数字图像处理
- 数字图像处理
- 数字图像处理
- document.documentElement和document.body的区别
- esp8266与mosquitto的mqtt的ssl通讯实现(三)-mosquitto配置
- addEventListener中this指向
- 在几个学生的成绩中找出不及格的学生并输出他的成绩(用指针指向一个二维数组)
- 最短路径之Dijkstra算法
- 数字图像处理_matlab
- 5个范例告诉你什么是自适应网页设计
- VC 下Microsoft Speech SDK开发语音识别
- 提高SQL查询效率
- final,finally,finalsize 的区别
- 自定义控件之滑动
- HDU5446 Unknown Treasure[中国剩余定理+Lucas]
- 搭建kafka运行环境
- 质因数分解