网站大量收购闲置独家精品文档,联系QQ:2885784924

Matlab图像处理代码及仿真结果.docx

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Matlab图像处理代码及仿真结果

预习报告要求:A.绘出信号,当、时、、时的信号实部和虚部图;当时呢?此时信号周期为多少?代码:function x=reim(z)n=1:100;x=exp(z.*n)subplot(2,1,1)plot(n,real(x)); % xμ?êμ2?title(real part of x);subplot(2,1,2)plot(n,imag(x)); % xμ?Dé2?title(imaginary part of x);enda=reim(-(1./12)+(pi./6).*i)a=reim((1./12)+(pi./6).*i)a=reim(1./12)a=reim(2+(pi./6).*i)a=reim((pi./6).*i)B.绘出信号的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期。频率是0.1;周期是10代码:function x=s(a,b)n=1:100;x=a.*sin(b.*n)plot(n,x);a=s(1.5,2.*pi.*0.1)2、使用帮助功能学习square(方波),sawtooth(锯齿波)和sinc函数,并绘图1. 实验目的:熟悉图像处理常用函数和方法;培养通过查阅文献解决问题的能力。2. 实验内容编程实现对该图像的任意比例的放大及缩小编程实现对该图像的任意角度旋转解决锯齿等图像不平滑问题(邻近法,双线性法)将自己实现的方法与matlab的方法进行比较针对黑白、灰度、彩色三类图像分别测试3. 实验步骤与分析考虑到在平面直角坐标系进行坐标点的平移变换会比较直观易懂,所以先把图像原点(这里取为图像的中心点)转化为直角坐标系原点,转换矩阵和代码如下:change = [1 0 0;0 -1 0;-0.5.*h 0.5.*k 1];进行图像处理操作后,要把图像的坐标原点转换回来,对图像进行还原,还原转换矩阵和代码如下:rechange = [1 0 0;0 -1 0;0.5.*R 0.5.*C 1];3.1 图像的旋转原图:对原点变换完成后的图像进行旋转操作,旋转矩阵和代码如下:tras = [cos(ang) -sin(ang) 0;sin(ang) cos(ang) 0;0 0 1];3.1.1 正映射方法旋转处理图像rotimg.m下面采用正映射的方法对处理后的图像进行灰度值赋值:完整代码如下:function a=rotimg(a,b)A = imread(a);[R,C,O] = size(A);ang = (b./180).*pi;h = double(abs(R.*cos(ang)) + abs(C.*sin(ang)));k = double(abs(C.*cos(ang)) + abs(R.*sin(ang)));o = O;r = uint8(h);c = uint8(k);change = [1 0 0;0 -1 0;-0.5.*R 0.5.*C 1];tras = [cos(ang) -sin(ang) 0;sin(ang) cos(ang) 0;0 0 1];rechange = [1 0 0;0 -1 0;0.5.*h 0.5.*k 1];B = zeros(r,c,o);fori = 1:R? ? for j = 1:C? ? ? ? ? ? temp = [i j 1];? ? ? ? ? ? temp = temp * change;? ? ? ? ? ? temp = temp * tras;? ? ? ? ? ? temp = temp * rechange;? ? ? ? ? ? x = uint8(temp(1, 1));? ? ? ? ? ? y = uint8(temp(1, 2));? ? ? ? ? ? if (x = r) (y = c) (x = 1) (y = 1)? ? ? ? ? ? ? ? B(x, y, :) = A(i, j, :);? ? ? ? ? ? end? ? endend;imshow(uint8(B));运行结果:a=rotimg(lolicon.jpg, 45)可以观察到图像的旋转和图像的大小比较符合要求,但是放大看会有有规律的像素点空洞:这是由于正向映射,代码x = uint8(temp(1, 1));y = uint8(temp(1, 2));会使部分像素点赋值重合,造成空洞点的问题3.1.2 最邻近插值法旋转处理图片rotimg_1.m如果采用反向映射的方法,就可以保证每个像素点都有灰度值,不会出现像素点空洞的情况,完整代码如下:function a=rotimg_1(a,b)A = imread(a);[R,C,O] = size(A);ang = (-b./180).

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档