用matlab编写代码将图像炸开成多块@TOC
#用matlab编写代码将图像炸开成多块
本代码用于将一张图像炸开成多块显示。
代码
%该代码用于将图像炸开
zkh = 1; %要炸开的行数
zkl = 16; %要炸开的列数
hjg = 20; %炸开后的行间隔(单位/像素)
ljg = 20; %炸开后的行间隔(单位/像素)
f = imread(‘比基尼.jpg’);% 比基尼.jpg为要炸开的图像名称
[r,c,l] = size(f);
%=================================
%计算关键节点
hjd(1,1) = 1;
for i = 1:1:zkh-1
hjd(i+1,1) = floor(r*i/zkh);
end
hjd(zkh + 1,1) = r;
ljd(1,1) = 1;
for j = 1:1:zkl-1
ljd(j+1,1) = floor(c*j/zkl);
end
ljd(zkl + 1,1) = c;
%==================================
%----------------------------------
%生成炸开后图像背景
newr = r + (zkh + 1)*hjg; %炸开后图像总行数
newc = c + (zkl + 1)ljg; %炸开后图像总列数
newpic = uint8(255ones(newr,newc,l));
%----------------------------------
%==========================================================================
%将炸开后图块赋值到新图像中
for i = 1:1:zkh
for j = 1:1:zkl
hb = hjd(i,1) + ihjg;
he = hjd(i+1,1) + ihjg;
lb = ljd(j,1) + jljg;
le = ljd(j+1,1) + jljg;
newpic(hb:he,lb:le,:) = f(hjd(i,1):hjd(i+1,1),ljd(j,1):ljd(j+1,1)?;
end
end
%==========================================================================
imshow(newpic);
imwrite(newpic,‘zhakai.jpg’);
msgbox ‘’;
实验结果