您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > matlab图片拼接代码
求matlab图像拼接程序clear;I=imread('xingshi32.bmp');if(isgray(I)==0)disp('请输入灰度图像,本程序用来处理128*128的灰度图像!');elseif(size(I)~=[128,128])disp('图像的大小不合程序要求!');elseH.color=[111];%设置白的画布figure(H);imshow(I);title('原图像');zeroImage=repmat(uint8(0),[128128]);figure(H);%为分裂合并后显示的图设置画布meansImageHandle=imshow(zeroImage);title('块均值图像');%%%%%设置分裂后图像的大小由于本图采用了128像素的图blockSize=[128643216842];%%设置一个S稀疏矩阵用于四叉树分解后存诸数据S=uint8(128);S(128,128)=0;threshold=input('请输入分裂的阈值(0--1):');%阈值threshold=round(255*threshold);M=128;dim=128;%%%%%%%%%%%%%%%%%分裂主程序%%%%%%%%%%%while(dim1)[M,N]=size(I);Sind=find(S==dim);numBlocks=length(Sind);if(numBlocks==0)%已完成break;endrows=(0:dim-1)';cols=0:M:(dim-1)*M;rows=rows(:,ones(1,dim));cols=cols(ones(dim,1),:);ind=rows+cols;ind=ind(:);tmp=repmat(Sind',length(ind),1);ind=ind(:,ones(1,numBlocks));ind=ind+tmp;blockValues=I(ind);blockValues=reshape(blockValues,[dimdimnumBlocks]);if(isempty(Sind))%已完成break;end[i,j]=find(S);set(meansImageHandle,'CData',ComputeMeans(I,S));maxValues=max(max(blockValues,[],1),[],2);minValues=min(min(blockValues,[],1),[],2);doSplit=(double(maxValues)-double(minValues))threshold;dim=dim/2;Sind=Sind(doSplit);Sind=[Sind;Sind+dim;(Sind+M*dim);(Sind+(M+1)*dim)];S(Sind)=dim;end[i,j]=find(S);%用来寻找四叉机分解结果中大小为S的块的位置set(meansImageHandle,'CData',ComputeMeans(I,S));%显示分解结果块均值图像Numberofbloks=length(i);%计算块数%sizev=size(v);endend程序2其实很简单的,看懂下面的语句:PicName1='a.jpg';%要合并的图片1PicName2='b.jpg';%要合并的图片2PicOut='c.jpg';%合并的结果IV1=imread(PicName1);%读入图片1IV2=imread(PicName2);%读入图片2PicData=[IV1;IV2];%如果是纵向拼接用这个PicData=[IV1IV2];%如果是横向拼接用这个imwrite(PicData,PicOut,'Quality',75);%输出图形
本文标题:matlab图片拼接代码
链接地址:https://www.777doc.com/doc-7331051 .html