Matlab函数实现图像垂直镜像
IsComputer 人气:0Matlab相关函数知识:
-
clc 清屏
-
close all 清除变量
-
clear all 关闭窗口
-
rgb2gray 将RGB图像或颜色图转换为灰度图
-
size(A) [在这里只考虑A为图像]
-
-
B = imresize(A,[300 300]) 将A图像调整为300*300大小,返回图像B
- [m n] = size(A) 返回图片像素的向量[m n],这里也就是图像的像素矩阵
-
-
-
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的矩阵
-
-
实例:
例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才是最大行数
例2:将以下四幅图像的尺寸均重新规定为300*300,并按照如下排列方式整合为一幅图像。
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);
加载全部内容