这里有一个实验,有两张图片,如下图所示:
图1 EXP1A.tif
图2 EXP1B.bmp
实验要求:在同一个图形界面上,于第1行第1列位置上显示图像EXP1A.tif的原始内容,于第1行第2列位置上显示EXP1A.tif右上角四分之一的内容,于第2行第1列位置上显示图像EXP1B.bmp的原始内容,于第2行第2列位置上显示EXP1B.bmp右上角四分之一的内容。
没错,这是一个与数字图像处理相关的实验。
代码如下:
img = imread("EXP1A.tif");
figure();%一个新的图片窗口
subplot(2,2,1);
imshow(img);
% img3=img(1:150,151:300,1);%第一行到第150行,第151列到300列
[r,c,k]=size(img);
img3=img(1:round(r/2),round(c/2):c,1);
subplot(2,2,2);
imshow(img3);
img2 = imread("EXP1B.bmp");
% figure();
subplot(2,2,3);
imshow(img2);
%注:两张图片的像素是不一样的
% img4=img2(1:150,151:300,1);%第一行到第255行,第256列到512列
[r,c,k]=size(img2);
img4=img2(1:round(r/2),round(c/2):c,1);
subplot(2,2,4);
imshow(img4);
其中,subplot(n,m,k)的作用是把figure()形成的窗口分成n行m列,k则是第几部分,从左往右,再从上往下,类似二维数组。
[r,c,k]=size(img);中,r,c,k是变量,可以换的,size()中放置图片,其中,r是一行的像素个数,c是一列的像素个数。
imread()是读取图片,而imshow()是显示图片。
如果还有不懂的地方,可以下面评论区直接问,或者私信我。一起交流学习,当然,matlab方面我也是名蒟蒻。