彩色图转灰度图matlab实现代码.docx

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

(一):彩色图像转灰度图?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); ???% 初始化缩小后图像矩阵forl_n=1:m;?? forr_n=1:n;????? ????????? l_f=round(l_n./k1);?????????? r_f=round(r_n./k2);????????? ifl_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);? % 初始化放大后图像矩阵forl_n=1:m;?? forr_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(放大后的图片)

文档评论(0)

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

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

1亿VIP精品文档

相关文档