MATLAB高级编程与工程应用人脸识别实验报告+源代码.docxVIP

MATLAB高级编程与工程应用人脸识别实验报告+源代码.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB高级编程与工程应用实验四图像处理第一章基础知识1、MATLAB 提供了图像处理工具箱,在命令窗口输入help images 可查看该工具箱内的所有函数。请阅读并大致了解这些函数的基本功能。大致了解。2、利用MATLAB 提供的Image file I/O 函数分别完成以下处理:(a)以测试图像的中心为圆心,图像的长和宽中较小值的一半为半径画一个红颜色的圆;分析:直接利用半径条件,满足条件的点将红色元素置为255,绿色和蓝色元素置为0,于是得到如下图像:源代码:load(hall_color.mat);%首先获得三原数组R = hall_color(:,:,1);G = hall_color(:,:,2);B = hall_color(:,:,3);%将圆上的点改为红色for i = 1:120for j = 1:168 a = abs(i - 60.5); b = abs(j - 84.5); d = sqrt(a ^ 2 + b ^ 2);if(abs(d - 60) 0.5)R(i,j) = 255; G(i,j) = 0; B(i,j) = 0;endendend%生成新的矩阵hall_color1(:,:,1) = R;hall_color1(:,:,2) = G;hall_color1(:,:,3) = B;imshow(hall_color1);(b)将测试图像涂成国际象棋状的“黑白格”的样子,其中“黑”即黑色,“白”则意味着保留原图。用一种看图软件浏览上述两个图,看是否达到了目标。分析:首先设置标记flag在进行循环,对不同方格实行颜色更改就行。效果:源代码:clear all;load(hall_color.mat);R = hall_color(:,:,1);G = hall_color(:,:,2);B = hall_color(:,:,3);flag = 1;for i = 1:8flag = mod((flag + 1),2);for j = 1:8if(flag == 1)for m = 15*(i - 1) + 1:15*ifor n = 21*(j - 1) + 1:21*j R(m,n) = 0; G(m,n) = 0; B(m,n) = 0;endendend flag = mod((flag + 1),2);endendhall_color1(:,:,1) = R;hall_color1(:,:,2) = G;hall_color1(:,:,3) = B;imshow(hall_color1);用看图软件打开成功:第二章图像压缩编码1、图像的预处理是将每个像素灰度值减去128 ,这个步骤是否可以在变换域进行?请在测试图像中截取一块验证你的结论。分析:可以在变换域进行,这个操作对应于在变换域将直流分量减去128*8*8/8 = 1024,于是可以得到如下图像:原图为:直接将灰度值减去128得到图像为:通过改变变换域数据的方式得到图像为:对比发现,两种变换方式得到的预处理后图像都是一样的。另外需要说明一下,为了让预处理后的图像显示出来不全为黑色,我将原图像的灰度像素均乘以了一个2,这样可以更加方便的对比变换后的图像。2、请编程实现二维DCT ,并和MATLAB 自带的库函数dct2 比较是否一致。分析:由PDF中的补充知识我们可以知道,任意二维矩阵做DCT变换的时候都可以由它和与之大小相同的余弦序列矩阵加权表示,也就是说C = DPD?T,那么我们先找出相应的D矩阵,于是我写出程序循环得到了相应维度的D矩阵,然后可以直接使用矩阵乘法得到相应的二维DCT变换,这样与MATLAB自带的库函数dct2虽然在代码实现上有一定的差异(dct2中调用了一维DCT函数实现二维DCT),但是结果实际上是一致的。得到DCT系数矩阵的代码如下所示:%生成8*8 DCT系数矩阵clc;%参数定义及初始化N = 8;DCT = zeros(N,N);%计算DCT系数矩阵DCT(1,:) = sqrt(1/N);for i = 2:N;for j = 1:N DCT(i,j) = sqrt(2/N)*cos((i - 1)*(2*j - 1)*pi/(2*N));endend3、如果将DCT 系数矩阵中右侧四列的系数全部置零,逆变换后的图像会发生什么变化?选取一块图验证你的结论。如果左侧的四列置零呢?分析:检测图像如下图所示:如果DCT系数矩阵中右侧四列的系数全部置零,逆变后的图像高

文档评论(0)

企管文库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档