clc 清屏
close all 清除变量
clear all 关闭窗口
rgb2gray 将RGB图像或颜色图转换为灰度图
size(A) [在这里只考虑A为图像]
B = imresize(A,[300 300]) 将A图像调整为300*300大小,返回图像B
imshow(I,[]) 显示灰度图像I
,根据I中的像素值范围对显示进行转换,它使用[min(I(:)) max(I(:))]
作为显示范围。将I
中的最小值显示为黑色,将最大值显示为白色。
X = zeros(sz1,...,szN) 返回由零组成的 sz1
×...×szN
数组,其中 sz1,...,szN
指示每个维度的大小。
zeros(2,3)
将返回一个 2×3 矩阵。图像合并:其实就是将图片按矩阵排列后,形成一个新的图像
[A B]:A图和B图水平拼接在一起,可以理解成是矩阵的一行
[A B;C D]:这是一个两行的矩阵,把四幅图拼在一起,其中A与B、C与D皆是水平拼接在一起,它们各自拼接的图片又组成一个2*1的矩阵
结果:
clc; clear all; close all; A = imread('f.jpg'); I = rgb2gray(A); [s1 s2] = size(I); S = zeros(s1,s2); for m = 1:s1 for n = 1:s2 S(m,n) = I(s1-m+1,n); end end figure; subplot(211),imshow(I,[]),title('原图'); subplot(212),imshow(S,[]),title('垂直镜像');
理解:
S(m,n) = I(s1-m+1,n)
要搞清楚s1表示第几行,把上述图片比作矩形,相当于宽,那么我们在做垂直镜像时,观察到其实每一个像素点的列不变,行发生了变化,可以自己举一个对称的小例子感受一下,一定要注意s1才是最大行数
clc; clear all; close all; P1 = imread('01.jpg'); P2 = imread('02.jpg'); P3 = imread('03.jpg'); P4 = imread('04.jpg'); f1 = imresize(P1,[300 300]); f2 = imresize(P2,[300 300]); f3 = imresize(P3,[300 300]); f4 = imresize(P4,[300 300]); I = [f1 f2;f3 f4]; figure; imshow(I);