




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(一):彩色图像转灰度图1、 设计任务1) 读入彩色和灰度图像并显示;2) 对彩色图像转化为灰度图像并显示;3) 比较两种方法的效果。2、 设计目的1) 掌握彩色图转灰度图的基本原理与方法;2) 初步掌握MATLAB的使用方法;3) 了解MATLAB在数字信号处理,尤其是图像处理中显现出来的优势。3、 源代码% 把RGB格式的图片转换为YUV格式。clear; clc;x=imread(lena512.BMP);line,row,dim=size(x);x1=double(x); % 数据类型转换subplot(1,3,1) % 分割当前绘图窗口为(1,3)的区域,显示此图片与1号区域imshow(uint8(x) % 数据类型转换,并且显示当前图片title(原图);% 矩阵乘,根据【RGB】转【YUV】关系转灰度图Y1=0.299*x(:,:,1)+0.587*x(:,:,2)+0.114*x(:,:,3);y1=round(Y1); % 取整subplot(1,3,2)imshow(uint8(y1)title(根据各分量转换关系转换后图片);% 求RGB各个分量均值转灰度图Y2=(x(:,:,1)+x(:,:,2)+x(:,:,3)/3;y2=round(Y2);subplot(1,3,3)imshow(uint8(y2)title(求均值转换后图片); 图片无法显示哈。图(1)彩色转灰度图程序运行结果4、 结果分析由运行结果可以看出,根据RGB到YUV各个分量关系转换得到的灰度图比较真实,而用简单的求RGB各个分量的均值转弧度图,其结果很不理想,图片基本看不清楚原来的轮廓。(二):对灰度图像实现按比例缩小和放大1、 设计任务1) 对灰度图实现在行上k1=0.6,列上k2=0.75的按比例缩小;2) 对灰度图实现在行上k1=1.2,列上k2=1.5的按比例放大;2、 设计目的1) 掌握图像的放大和缩小原理;2) 用MATLAB实现图像的按比例放大和缩小;3) 明白图像的放大和缩小并不是简单的互为逆过程。3、 源代码(1) 图像按比例缩小源代码% 图像按比例缩小clear; clc;X=imread(house.BMP); % 读取图片line,row=size(X);x=double(X);subplot(1,2,1)imshow(uint8(x)title(原图);%图片缩小k1=0.6;k2=0.75; % k1,k2分别表示在行和列上缩小的倍数l_f=1:line;r_f=1:row;m=round(line*k1);n=round(row*k2); % (m,n)表示缩小后的图片的大小G=zeros(m,n); % 初始化缩小后图像矩阵for l_n=1:m; for r_n=1:n; l_f=round(l_n./k1); r_f=round(r_n./k2); if l_f=256; G(l_n,r_n)=x(256,r_f); % 当l_n=154时,l_f256,越界处理, % 而当r_n=192时,r_f=256,恰好为边界值,不产生越界。 else G(l_n,r_n)=x(l_f,r_f); %缩小后图片赋值 end endendsubplot(1,2,2)imshow(uint8(G)title(缩小后的图片);图(2)图片缩小程序运行结果 (2)图片按比例放大源代码% 图像按比例放大clearclcX=imread(splash.BMP);line,row=size(X);x=double(X);figure(1) % 绘图窗口1imshow(uint8(x)title(原图);%图片放大k1=1.2;k2=1.5; % k1,k2分别表示在行和列上放大的倍数l_f=1:line;r_f=1:row;m=round(line*k1);n=round(row*k2); % (m,n)表示放大后的图片的大小G=zeros(m,n); % 初始化放大后图像矩阵for l_n=1:m; for r_n=1:n; l_f=round(l_n./k1); r_f=round(r_n./k2); G(l_n,r_n)=x(l_f,r_f); % 放大后图片赋值 endendfigure(2) % 绘图窗口2imshow(uint8(G)title(放大后的图片); 图(31)图片放大程序运行结果 图(32)图片放大程序运行结果4、 结果分析图片缩小后,由于在行和列上分别用了不同的缩小比例,所以缩小后的图片在行列上的像素个数与原图片不同,原图片house.BMP大小为256*256,而缩小后的图片大小为154*192。在缩小过程中,图片像素点下标出现了越界现象,处理方法是,将离它最近的像素点赋值给相应位置;图(31)为原图片,图(32)为放大后的图片。因为在行和列上有了不同的放大倍数,原图片splash.BMP大小为512*512,放大后的图片大小为614*768。(三):对灰度图像进行直方图均衡化处理1、设计任务1) 对弧度图像进行直方图均衡化处理;2) 明白灰度均衡的原理和方法。2、设计目的1) 掌握直方图均衡原理;2) 自己编写程序,实现灰度图的直方图均衡。3、源代码 % 直方图灰度均衡clear; clc;X=imread(pattern.BMP); % 读图x=double(X); % 改变数据类型figure(1) % 第一个图形窗口subplot(2,2,1) % 分割图形窗口imshow(uint8(x) % 显示图片title(原图); % 给图片标题subplot(2,2,2)imhist(uint8(x) % 原图的灰度图title(原图的灰度直方图);% 灰度均衡程序段line,row=size(X); % 计算图像大小Nf=line*row; % 计算图片像素总数pf=0:255; % 灰度级分布范围l=length(pf); % 灰度级长度% 求各个灰度级的概率分布hf=zeros(1,l); % hf为原图的各灰度级概率hp=zeros(1,l); % hp为计算出的新的各灰度级概率pn=zeros(1,l); % pn为新的灰度级范围for a=(1:l); % 灰度级个数 x(find(x=pf(a); % 找出灰度级为pf(a)的像素点 N(a)=length(x(find(x=pf(a); % 找出各个灰度值的总数 hf(a)=N(a)./Nf; % 计算第i个灰度值的概率end% 计算新的各个灰度值的概率分布% 计算新的灰度值for a=(1:l); if a=1; hp(a)=hf(a); % 当a=1时,即第一个灰度级的概率 % 均衡后的图和原图的该灰度级概率相同 else hp(a)=hf(a)+hp(a-1); % 当a1时,从第二个灰度级起 %均衡后图片当前灰度级的概率为原图当前灰度级与之前概率之和。 pn=round(hp*255); % pn 为均衡后的新图片的灰度值(round 舍入取整) endend% 图像恢复g=zeros(line,row); % 新图像矩阵初始化for m=1:line; for n=1:row; % (m,n)为图像的大小 for a=1:l;if x(m,n)=pf(a); % 扫描原图,(m,n)点的灰度值等于灰度级表中的pf(a)值,% 取出a值 g(m,n)=pn(a); % 把对应在新的灰度级表中的a位置的值赋值给新的图像 end end endend subplot(2,2,3)imshow(uint8(g)title(灰度均衡后的图片);subplot(2,2,4)imhist(uint8(g)title(均衡后的灰度直方图)图(41)灰度均衡程序运行结果图(42)灰度均衡程序运行结果4、结果分析 直方图均衡的目的就是把原图中,比较集中的灰度级分布到整个灰度级范围内,使得图片的黑白分明,显示出更多的细节来。 由图(42)后面的灰度直方图可以看出,原来比较集中的灰度级,现在比较宽,比较均匀的分布在了整个灰度范围内。灰度均衡后的图片给人的感觉比原来的图片更清晰,更多的显示出了其细节。(四)对灰度图像进行滤波处理1、设计任务1) 对灰度图像完成均值滤波;2) 对灰度图像完成中值滤波;3) 要求滤波器魔波尺寸分别取3*3和5*5.2、设计目的1) 掌握图像滤波原理;2) 用MATLAB编程实现对图像的均值滤波和中值滤波;3) 分析滤波器模板尺寸不同对滤波效果的影响。3、源代码(1)均值滤波源代码% 均值滤波程序clear;clc;X=imread(lena256noisegau.BMP);line,row=size(X);x=double(X);subplot(1,2,1)imshow(uint8(x)title(未滤波前图片);% 滤波器主程序段s=input(please input the size of templet s=);H=(1/s2)*ones(s);G=zeros(line,row); % 滤波后图片矩阵初始化l_x=1:line;r_x=1:row; % 图片行列下标范围x_s=zeros(s); % 原图片中像素点取样矩阵初始化 for p=1:(line-s+1); for q=1:(row-s+1); % p,q 为行列下标变量 for u=1:s; for v=1:s; x_s(u,v)=x(p+u-1,q+v-1); % 从原图片中提取滤波块 end end I=H.*x_s; % 与滤波器模块相乘 for u=1:s; for v=1:s; G(p+(s-1)/2,q+(s-1)/2)=round(G(p+(s-1)/2,q+(s-1)/2)+I(u,v); % 给滤波后的图像矩阵赋值 end end endend% 边界特殊点取值,一般把原图像的点复制过来,不影响视觉效果for l_x=1:(s-1)/2; G(l_x,:)=x(l_x,:);endfor l_x=(line-(s-3)/2):line; G(l_x,:)=x(l_x,:);endfor r_x=1:(s-1)/2; G(:,r_x)=x(:,r_x);endfor r_x=(row-(s-3)/2):row; G(:,r_x)=x(:,r_x);end% 图片显示subplot(1,2,2)imshow(uint8(G)title(滤波后的图片);图(51)均值滤波程序运行结果(s=3)图(52)均值滤波程序运行结果(s=5)4.1、 结果分析 均值滤波的基本原理就是把跟滤波器模块大小相等的像素模块与滤波器模块相乘,将结果的各个像素点的均值赋值给模块中间的或者确定好的像素点;滤波器模块滑动扫边整个图像,就达到了滤波的目的。边界值不能进行滤波处理,可直接从原图像中复制过来,并不影响滤波的视觉效果。图(51)是滤波器模块大小为3*3的时候的滤波结果,感觉比较清晰,但是滤波效果不怎么好,噪声点还能明显的看到;图(52)是滤波器模块大小为5*5的时候的滤波结果,感觉图像没有原来的清晰,但是噪声点却不那么明显了。(2)中值滤波源代码 % 中值滤波器clear;clc;X=imread(lena256noisesalt.BMP);line,row=size(X);x=double(X);subplot(1,2,1)imshow(uint8(x)title(未滤波前图片);% 滤波器主程序段s=input(please input the size of templet s=);G=zeros(line,row); % 滤波后图片矩阵初始化l_x=1:line;r_x=1:row; % 图片行列下标范围x_s=zeros(s); % 原图片中像素点取样矩阵初始化b=zeros(1,s2); % 初始化行向量c=zeros(1,s2); % 中间变量向量for p=1:(line-s+1); for q=1:(row-s+1); % p,q 为行列下标变量 for u=1:s; for v=1:s; x_s(u,v)=x(p+u-1,q+v-1); % 从原图片中提取滤波块 end end% 把提取出的像素值排成一行 k=1; for u=1:s; for v=1:s; b(k)=x_s(u,v); % 把像素值赋值给行向量 k=k+1; end end % 把行向量b中的值按从小到大的顺序排列Nf=s2; for n=1:Nf2; for m=1:(Nf-1); if b(m)b(m+1); c(m)=b(m+1); b(m+1)=b(m); b(m)=c(m); else b(m)=b(m); b(m+1)=b(m+1); end end end % 给滤波后图像矩阵赋值 for u=1:s; for v=1:s; G(p+(s-1)/2,q+(s-1)/2)=b(Nf-1)/2); % 给滤波后的图像矩阵赋值 end end endend% 边界特殊点取值,一般把原图像的点复制过来,不影响视觉效果for l_x=1:(s-1)/2; G(l_x,:)=x(l_x,:);endfor l_x=(line-(s-3)/2):line; G(l_x,:)=x(l_x,:);endfor r_x=1:(s-1)/2; G(:,r_x)=x(:,r_x);endfor r_x=(row-(s-3)/2):row; G(:,r_x)=x(:,r_x);end% 图片显示subplot(1,2,2)im
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 培训总结与计划指南
- 枣强中学高一上学期第一次月考物理试题
- 家装公司活动流程
- 消防法律法规培训
- 2025电竞馆合作合同标准模板
- 民政局安全培训大纲
- 2025小型工程合同样本范本
- 2025年上海市的简易劳动合同范本
- 监狱警察一日行为规范
- 2025年高考历史总复习高中历史必修二全册复习汇编
- 2025年注册会计师(专业阶段)题库完美版带答案分析
- 云南师大附中2025届高三下学期第六次检测物理试卷含解析
- 市政排水移交协议书
- 广西壮族自治区马山县实验高中-双休背后:从“要我学”到“我要学”的转变-高三家长会【课件】
- 2024年中小学教师资格考试复习资料
- 名企2025汇能控股集团有限公司人才招聘151人笔试参考题库附带答案详解
- 全媒体内容创作技能试题及答案
- 蛋鸡155标准化立体养殖模式
- 血氨正常值和临床意义
- 浙江省湖州市德清县2025年中考语文模拟考试试卷(附答案)
- 2025年无锡南洋职业技术学院单招职业技能测试题库带答案
评论
0/150
提交评论