【基本運算】基於matlab影象基本運算【含Matlab原始碼 1009期】
阿新 • • 發佈:2021-06-18
一、簡介
二、原始碼
clear,clc,close all; Image=imread('butterfly.bmp'); Back=imread('IMG3_13.jpg'); subplot(131),imshow(Image),title('蝴蝶'); subplot(132),imshow(Back),title('背景'); [h w c]=size(Back); population=20; num=3; for k=1:population type=randi(6,1,num); NewImage=Image; for n=1:num switch type(n) case 1 %scale scale=rand(); NewImage=imresize(NewImage,scale,'bilinear'); Image=im2double(imread('lotus.jpg')); %讀取影象並轉換為double型 [h,w,c]=size(Image); %獲取影象尺寸 NewImage=ones(h,w,c); %新影象初始化 deltax=20;deltay=20; for x=1:w for y=1:h %迴圈掃描新影象中點 oldx=x-deltax; oldy=y-deltay; %確定新影象中點在原圖中的對應點 if oldx>0 && oldx<w && oldy>0 && oldy<h %判斷對應點是否在影象內 NewImage(y,x,:)=Image(oldy,oldx,:); %賦值 end end end Image=imread('lotus.jpg'); deltax=20;deltay=20; T=maketform('affine',[1 0 0;0 1 0;deltax deltay 1]); NewImage1=imtransform(Image,T,'XData',[1 size(Image,2)],'YData',[1,size(Image,1)],'FillValue',255); NewImage2=imtransform(Image,T,'XData',[1 size(Image,2)+deltax],'YData',[1,size(Image,1)+deltay],'FillValue',255); subplot(131),imshow(Image),title('原圖'); subplot(221),imshow(Image2); subplot(222),imshow(HImage); subplot(223),imshow(VImage); subplot(224),imshow(CImage); Image=im2double(imread('lotus.jpg')); tform1=maketform('affine',[1 0 0;0.5 1 0; 0 0 1]); tform2=maketform('affine',[1 0.5 0;0 1 0; 0 0 1]); NewImage1=imtransform(Image,tform1); NewImage2=imtransform(Image,tform2); Back=imread('desert.jpg'); Foreground=imread('car.jpg'); result1=imadd(Foreground,-100); result2=imadd(Back,Foreground); result3=imadd(Back,result1); imwrite(result1,'jiabiaoliang.jpg'); imwrite(result2,'jiabeijing.jpg'); imwrite(result3,'jiabiaoliangjiabeijing.jpg');
三、執行結果
四、備註
版本:2014a
完整程式碼或代寫加1564658423