首先看两张图,Bee的眼睛较大,Whale的眼睛较小,我们要做的就是把他们两个眼睛互换,而且还要保证它的新眼睛大小一致。简单来说就是,比如博主我是大眼睛,那我就一直是大眼睛。 1.Bee: [ Matlab代码:
clc,clear,close all
Bee=rgb2gray(imread(‘bee.png’));
Whale=rgb2gray(imread(‘Whale.png’));
subplot(421),imshow(Bee),title(‘Bee’); %Bee原图
subplot(422),imshow(Whale),title(‘Whale’); %Whale原图
BeeEyes=Bee(146:200,317:380); %Bee眼睛的位置
subplot(423),imshow(BeeEyes),title(‘Bee的眼睛’);
WhaleEyes=Whale(147:170,110:135); %Whale眼睛的位置
subplot(424),imshow(WhaleEyes),title(‘Whale的眼睛’);
%将Bee和Whale眼睛的位置变成白色
Bee(146:200,317:380)=255;
Whale(147:170,110:135)=255;
subplot(425),imshow(Bee),title(‘失去眼睛的Bee’);
subplot(426),imshow(Whale),title(‘失去眼睛的Whale’);
BeeEyes=imresize(BeeEyes,0.5); %变成原图的0,5倍
WhaleEyes=imresize(WhaleEyes,3); %变成原图的3倍
Bee_h=(200-146)/2+146;
Bee_w=(380-317)/2+317; %Bee_h,Bee_w为Bee眼睛中心点
Bee_w=round(Bee_w); %round四舍五入
[h1,w1]=size(WhaleEyes); %size取WhaleEyes图像大小
bh=Bee_h-round(h1/2);
bw=Bee_w-round(w1/2);
Bee(bh:bh+h1-1,bw:bw+w1-1)=WhaleEyes;
subplot(427),imshow(Bee),title(‘Bee的新眼睛’);
Whale_h=(170-147)/2+147;
Whale_h=round(Whale_h);
Whale_w=(135-110)/2+110;
Whale_w=round(Whale_w);
[h2,w2]=size(BeeEyes);
wh=Whale_h-round(h2/2);
ww=Whale_w-round(w2/2);
Whale(wh:wh+h2-1,ww:ww+w2-1)=BeeEyes;
subplot(428),imshow(Whale),title(‘Whale的新眼睛’);
代码处理后的效果如下,从第四行可以看到它们已经成功换了眼睛。 [