- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图像的灰度显示以与平移、缩放、旋转
图像的灰度显示以及平移、缩放、旋转代码实现程序说明及代码(1)、程序说明:本程序主要功能为灰度图像的显示、原始直方图的绘制、转换函数的绘制、直方图均衡化后的图像绘制及其直方图的绘制。并且,该程序接受任何灰度图像的输入,该输入以文件的形式打开。程序代码:clear allclose all[fn,pn,fi]=uigetfile(*.jpg,选择图片); %以文件打开的形式选择图片pic=imread([pn fn]);subplot(2,2,1);imshow(pic);title(原图);graydis=zeros(1,256); grayhist=zeros(1,256);new_graydis=zeros(1,256);new_grayhist=zeros(1,256);[h w]=size(pic);new_pic=zeros(h,w);for x=1:hfor y=1:w graydis(1,pic(x,y)+1)=graydis(1,pic(x,y)+1)+1;endendgrayhist=graydis./sum(graydis); %计算直方图subplot(2,2,2);plot(grayhist);title(灰度直方图);for i=2:256 grayhist(1,i)=grayhist(1,i)+grayhist(1,i-1);endfor i=1:256t(1,i)=floor(254*grayhist(1,i)+0.5);endfor i=1:256 new_graydis(1,t(1,i)+1)=new_graydis(1,t(1,i)+1)+graydis(1,i);endnew_grayhist=new_graydis./sum(new_graydis);%计算新的灰度直方图new_grayhistsubplot(2,2,4);plot(new_grayhist);title(均衡化后的灰度直方图);%计算直方图均衡后的新图new_picfor x=1:hfor y=1:w new_pic(x,y)=t(1,pic(x,y)+1);endendsubplot(2,2,3);imshow(new_pic,[]);title(直方图均衡化后的图);figure,plot(t);title(转换函数);(2)、程序说明:本程序主要功能为图像的平移、以双线性插值方法进行的缩放与旋转、以最近邻方法进行的缩放与旋转;程序接受任何tif图像的输入,该输入以文件形式打开;程序接受任意横向平移、纵向平移数的输入;程序接受任意大小的缩放;程序接受任意角度的旋转。程序代码:平移代码clear; [fn,pn,fi]=uigetfile(*.tif,选择图片); %以文件打开的形式选择图片I=imread([pn fn]);[m, n] = size(I);a = str2double(inputdlg(请输入行平移数, INPUT scale factor, 1, {20}));%行默认平移20b = str2double(inputdlg(请输入列平移数, INPUT scale factor, 1, {10}));%列默认平移10p=m+abs(a);q=n+abs(b);jx=zeros(p,q);for i=1:mfor j=1:nif a=0 b=0 jx(a+i,b+j)=I(i,j);elseif a=0 b0 jx(a+i,j)=I(i,j);elseif a0 b=0 jx(i,b+j)=I(i,j);elseif a0 b0 jx(i,j)=I(i,j);endendend mt=uint8(jx); subplot(1,2,1);imshow(I);title(原图);subplot(1,2,2);imshow(mt);title(平移后的图);双线性插值缩放与旋转clear; %用双线性插值法实现图像缩放与旋转[fn,pn,fi]=uigetfile(*.tif,选择图片); %以文件打开的形式选择图片I=imread([pn fn]);[rows,cols]=size(I);K1 = str2double(inputdlg(请输入行缩放倍数, INPUT scale factor, 1, {0.5}));%行默认变为原来的0.5倍K2 = str2double(inputdlg(请输入列缩放倍数, INPUT scale factor, 1, {0.4}));%列默认变为原来的0.4倍width = K1 * rows;
文档评论(0)