数字图像实验报告
更新时间:2024-06-14 20:18:01 阅读量: 综合文库 文档下载
实验报告
专业名称 班级学号 学生姓名
实验一 图像的基本运算
实验内容 1、程序:
I=imread('lena8.jpg'); figure;
subplot(2,3,1); imshow(I); title('原图');
J=imadjust(I,[0.3;0.6],[0.1;0.9]); %设置灰度变换的范围 subplot(2,3,2); imshow(J);
title('线性扩展');
I1=double(I); I2=I1/255; C=2;
K=C*log(1+I2); subplot(2,3,3); imshow(K);
title('非线性扩展'); M=im2bw(I,0.5); M=~M;
%M=255-I; %Figure
subplot(2,3,4); imshow(M); title('灰度倒置');
N1=im2bw(I,0.4); N2=im2bw(I,0.7); subplot(2,3,5); imshow(N1);
title('二值化阈值0.4'); subplot(2,3,6); imshow(N2);
title('二值化阈值0.7'); 结果:
%将图像转换为double类型 %归一化此图像 %求图像的对数变换 %将此图像取反 %将此图像二值化,阈值为0.4 %将此图像二值化,阈值为0.7
2、程序:
I=imread('hough.bmp'); %I=rgb2gray(I);
J=imread('rice.bmp');
I=im2double(I); %将图像转换成double型 J=im2double(J);
K=I+0.3*J; %两幅图像相加 subplot(1,3,1); imshow(I); title('物图'); subplot(1,3,2); imshow(J); title('背景图'); subplot(1,3,3); imshow(K);
title('相加后的图'); imwrite(K,'lena1.jpg'); 结果;
3、程序:
A=imread('lena1.jpg'); B=imread('rice.bmp');
A=im2double(A); B=im2double(B); C=A-0.3*B; subplot(1,3,1); imshow(A);
title('混合图'); subplot(1,3,2); imshow(B); title('背景图'); subplot(1,3,3); imshow(C);
title('分离后的图');
结果:
4、程序:
A=imread('rice.bmp'); %A=rgb2gray(A); A=im2double(A); subplot(1,2,1); imshow(A); title('原图');
B=zeros(256,256); B(40:200,40:200)=1; K=A.*B;
subplot(1,2,2); imshow(K); title('局部图'); 结果:
5、程序:
A=imread('lena8.jpg');
Bl=imresize(A,1.5); %比例放大1.5倍,默认的采用的是最近邻法进行线性插
值
B2=imresize (A, [420 384]); %非比例放大至420:384 Cl=imresize (A, 0 . 7) ; %比例缩小0.7倍 C1=imresize(A, 0.7) ;
C2=imresize(A, [150 180]) ; %非比例缩小到150:180 figure;subplot(2,2,1); imshow(Bl);
title('比例放大图'); subplot(2,2,2); imshow(B2);
title('非比例放大图'); subplot(2,2,3); imshow(C1);
title('比例缩小图'); subplot(2,2,4); imshow(C2);
title('非比例缩小图'); 结果:
实验二 图像的变换
实验内容 1、 程序:
I=imread('1.bmp');
%I=imread('LENA.JPG'); %imshow(I); figure();
subplot(3,2,1); imshow(real(I)); I=I(:,:,3); fftI=fft2(I);
sfftI=fftshift(fftI); %求离散傅里叶频谱
%对原始图像进行二维离散傅里叶变换,并将其坐标原点移到频谱中央位置 RRfdpl=real(sfftI); IIfdpl=imag(sfftI);
a=sqrt(RRfdpl.^2+IIfdpl.^2);
a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225; subplot(3,2,2); imshow(real(a)); I=imread('2.bmp');
%I=imread('LENA.JPG'); %imshow(I); subplot(3,2,3); imshow(real(I)); I=I(:,:,3); fftI=fft2(I);
sfftI=fftshift(fftI); %求离散傅里叶频谱
%对原始图像进行二维离散傅里叶变换,并将其坐标原点移到频谱中央位置 RRfdpl=real(sfftI); IIfdpl=imag(sfftI);
a=sqrt(RRfdpl.^2+IIfdpl.^2);
a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225; subplot(3,2,4); imshow(real(a)); I=imread('3.bmp');
%I=imread('LENA.JPG'); %imshow(I); subplot(3,2,5); imshow(real(I)); I=I(:,:,3); fftI=fft2(I);
sfftI=fftshift(fftI); %求离散傅里叶频谱
%对原始图像进行二维离散傅里叶变换,并将其坐标原点移到频谱中央位置 RRfdpl=real(sfftI); IIfdpl=imag(sfftI);
a=sqrt(RRfdpl.^2+IIfdpl.^2);
a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225; subplot(3,2,6); imshow(real(a));
结果:
2、程序:
I=zeros(256,256);
I(88:168,124:132)=1; %图像范围是256*256,前一值是纵向比,后一值是横向比
figure(),subplot(2,2,1);
imshow(I); %求原始图像的傅里叶变换 J=fft2(I); F=abs(J); J1=fftshift(F); subplot(2,2,2); imshow(J1,[5 50]); %对原始图像进行旋转
J=imrotate(I,90,'bilinear','crop'); subplot(2,2,3); imshow(J);
%求旋转后图像的傅里叶频谱 J1=fft2(J); F=abs(J1); J2=fftshift(F); subplot(2,2,4); imshow(J2,[5 50]);
结果:
3、程序:
%对 lena24.jpg文件计算二维DCT变换 RGB = imread('lena24.jpg'); figure(1),subplot(1,3,1); imshow(RGB); I = rgb2gray(RGB);
%真彩色图像转换成灰度图像 J = dct2(I);
%计算二维DCT变换 subplot(1,3,2);
imshow(log(abs(J)),[]);
%对图像大部分能量集中在上右角处 subplot(1,3,3); J(abs(J) < 10) = 0;
%吧变换矩阵镇南关小于10的值置换为0,然后用idc2重构图像 K = idct2(J)/255; imshow(K); 结果:
4、程序:
RGB = imread('lena24.jpg'); I=rgb2gray(RGB);
I = im2double(I); %转换图像矩阵为双精度型 T = dctmtx(8); %产生二维00?变换矩阵,
%矩阵T及其转置T‘是DCT函数P1*X*P2的参数 B = blkproc(I, [8 8],'P1*x*P2',T,T'); mask1= [ 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
%二值掩模,用来压缩DCT系数 B2=blkproc(B,[8 8],'P1.*x',mask1); %只保留DCT变换的10个系数 I2=blkproc(B2,[8 8],'P1*x*P2',T',T); %重构图像
figure,imshow(I); figure,imshow(B2); figure,imshow(I2); 结果:
实验三 图像的增强
实验内容 1、程序: clear all close all
I{1}=double(imread('lena8.jpg')); I{1}=I{1}/255;
figure(1),subplot(2,4,1),imshow(I{1},[]),hold on I{2}=double(imread('lena1.jpg')); I{2}=I{2}/255;
subplot(2,4,5),imshow(I{2},[]),hold on for m=1:2 Index=0;
for lemta=[0.5 5] Index=Index+1;
F{m}{Index}=I{m}.^lemta; subplot(2,4,(m-1)*4+Index+1), imshow(F{m}{Index},[]) end end 结果:
2、程序: clear all close all %0.读图像
I=double(imread('lena8.jpg')); figure,
imshow (I,[]) N=32;
Hist_image=hist (I(:),N) ; %直方图
Hist_image=Hist_image/sum (Hist_image); Hist_image_cumulation=cumsum(Hist_image); %累计直方图 figure,
stem([0:N-1] ,Hist_image) ; %1.设计目标直方图 Index=0:N-1; Index=0:7;
%正态分布直方图
Hist{1}=exp(-(Index-4).^2/8); Hist{1}=Hist{1}/sum(Hist{1});
Hist_cumulation{1}=cumsum(Hist{1}); figure,
stem([0:7],Hist{1}) %倒三角形状直方图 Hist{2}=abs(15-2*Index);
Hist{2}=Hist{2}/sum(Hist{2});
Hist_cumulation{2}=cumsum(Hist{2}); figure,
stem([0:7],Hist{2}) %2.规定化处理 for m=1:2 Image=I;
%2.1 SML处理 for k=1:N
Temp=abs(Hist_image_cumulation(k)-Hist_cumulation{m}); [Tempi,Project{m}(k)]=min(Temp); end
%2.2变换后直方图 for k=1:N
Temp=find(Project{m}==k); if isempty(Temp)
Hist_result{m}(k)=0; else
Histresult{m}(k)=sum(Hist_image(Temp)); end end figure,
stem([0:31],Hist_result{m}); %2.3结果图 Step=256/N; for k=1:N
Index=find(I>=Step*(k-1)&I imshow(Image,[]) end 结果: 3、程序: clear all close all I=double(imread('lena8.jpg')); figure,subplot(2,4,1); imshow(I,[]); % 1.均值低通滤波 H=fspecial('average',5); F{1}=double(filter2(H,I)); subplot(2,4,2);,imshow(F{1},[]); % 2 . gaussian低通滤波 H=fspecial('gaussian',7,3); F{2}=double(filter2(H,I)); subplot(2,4,3);,imshow(F{2},[]); % 3.增强图像-原图-均值低通滤波 F{3}=2*I-F{1}; subplot(2,4,4);,imshow(uint8 (F{3}),[]); % 4.增强图像=原图-高斯低通滤波 F{4}=2*I-F{2}; subplot(2,4,5);,imshow(uint8 (F{4}),[]); %5. ‘prewitt’边缘算子增强 H=fspecial('prewitt'); F{ 5}=uint8(I+filter2(H,I)); subplot(2,4,6);,imshow(F{5},[]); %6. ‘sobel’边缘算子增强 H=fspecial('sobel'); F{6}=uint8(I + filter2(H,I)); subplot(2,4,7);,imshow(F{6},[]); 结果: 实验四 图像的复原 实验内容 1、程序: clear; close all; %1.生成含噪图像 img = imread('lena8.bmp'); figure,subplot(2,3,1); imshow(img); img =double(imnoise(img,'salt & pepper', 0.01)); subplot(2,3,2); ,imshow(img,[]); %2.采用均值滤波 N=5; %滤波模板大小 h=fspecial('average',N); I=filter2(h,img); subplot(2,3,3); ,imshow(I,[]) %3.中值滤波 I=medfilt2(img,[N N]); subplot(2,3,4); ,imshow(I,[]) %4.最大值滤波 I=ordfilt2(img,N*N,true(N)); subplot(2,3,5); ,imshow(I,[]) %5.最小值滤波 I=ordfilt2(img,1,true(N)); subplot(2,3,6); ,imshow(I,[]) 结果: 2、程序: close all clear all %1.生成波纹噪声图像 img = double(imread('lena8.bmp')); figure,subplot(2,3,1); imshow(img,[]); sizec=size(img); w=0.4*2*pi; %噪声的数字频率 N=2*pi/w; %噪声每一周期的采样点数 img_noise=img+20*ones(sizec(1),1)*sin(w*[1:sizec(2)]); subplot(2,3,2); ,imshow(img_noise,[]); %图像频谱 F0=fft2(img); F0=fftshift(F0); subplot(2,3,3); ,imshow(log(abs(F0)),[]); F=fft2(img_noise); F=fftshift(F); subplot(2,3,4); ,imshow(log(abs(F)),[]); %2.设计理想陷波滤波器 H=ones(sizec(1),sizec(2)); %图像中心点 x0=sizec(1)/2+1; y0=sizec(2)/2+1; %噪声所处频率点(x,y) x=x0; y=y0-round(sizec(2)/N); H (x,y-3:y+3)=0; H(x,(y0-y)+y0-3:(y0-y)+y0+3)=0; %3.滤波结果 I=ifftshift(F.*H); imgl=ifft2(I); subplot(2,3,5); ; imshow(imgl,[]); 结果:
正在阅读:
数字图像实验报告06-14
志诚信息服务公司创业计划书03-22
湖南省凤凰县发展文化旅游产业案例分析10-09
英语中将来时的表示形式10-23
2018国企总经理述职述廉报告10-18
《移动通信技术》复习提纲10-28
知识产权法11-17
2018年中国专业市场建设深度调研与投资战略规划分析报告目录01-29
法人单位基本情况 - 石景山信息网05-27
锌焙砂浸出理论分析05-15
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 图像
- 实验
- 数字
- 报告
- 郭德纲相声语言特色的分析
- 悬灌专项方案2014.7.4修改版
- 项目1 车削基础知识 - 图文
- 西南大学 2017 秋学期 计算机专业 《计算机导论》作业题目
- 偿债准备金专户管理办法
- 王乐同学申报“江苏好少年”推荐表
- 淮北发电厂典型事故汇编(锅炉篇)
- 乙醇-水精馏塔设计
- 论第三人侵害债权
- 2018教育学考研:天师大有什么参考书目使用
- 考研政治复习资料
- 一线三角模型及例题
- 电力职业鉴定题库-电力电缆高级工试题
- 大学英语A级词汇表(完全版)
- 初中数学第五章二元一次方程组5-7用二元一次方程组确定一次函数
- DOS编程高级技巧
- 高考生物一轮复习 第三单元 第8讲 ATP和酶教学案 苏教版
- 2017年11月三级人力师理论卷和技能卷真题和答案
- 华中科技大学计算机系统基础实验报告
- 水利06级《水力学》试卷B