Skip to content

Latest commit

 

History

History
109 lines (78 loc) · 6 KB

08Image_Processing I.md

File metadata and controls

109 lines (78 loc) · 6 KB

以下内容为个人笔记,部分图片来源于郭老师课件或课程截图。 笔记汇总:MATLAB基础教程 课程视频:MATLAB基础教程-台大郭彦甫(14课全-高清-含课件)


数字图像简述

image-20210131115053887

  • 数字图像大概可以分为如上图所示的三类:彩色、灰阶、黑白;
  • 计算机存储图像时,实际上当作一个矩阵来存储,简单来说,矩阵的大小即为图片的像素大小;
  • 对于最简单的黑白图像,是一个二维 01 矩阵,图片的每一个像素点对应一个数值,黑色为0,白色为1; 对于灰阶图像,是一个二维矩阵,每一个像素点对应的数值为 uint8 类型,即 0~255;越白数值越大; 对于彩色图像,可以简单地理解为三个灰阶矩阵叠加成的一个三维矩阵,其每一个灰阶矩阵分别对应 R G B;这样每一个像素点对应三个数值,叠加得到该像素点的颜色;
  • MATLAB 对于图片的处理实际上就是对这样的矩阵做各种运算;

图像准备

图像算法

图像乘法

image-20210131161933165

  • Z = immultiply(X, Y) 将图像 X 乘以 Y
  • 如果Y 是常数,则X每一个元素值乘以Y;比如上图将图片乘以 1.5 变得更亮;要变得更暗则乘以小于 1 的数;
  • 如果Y 是图片(矩阵),则必须是和X等大小的图片,两个矩阵做点乘;
  • Z = imdivide(X, Y) 与矩阵乘法对应的矩阵除法

图像加法

image-20210131162652324

  • Z = imadd(X, Y) 将图像 X 加上 Y
  • 如果Y 是常数,则X每一个元素值加上 Y;
  • 如果Y 是图片(矩阵),则必须是和X等大小的图片,两个矩阵做加法;比如上图将两个图片相加;
  • Z = imsubtract(X, Y) 与图像加法对应的图像减法

图像的加减乘除可能会出现超出 uint8 的范围,matlab不会发生溢出之类的现象,而是对于超过255的结果其值即为255;对于小于0的结果其值即为0;

对图像的处理实际上就是对矩阵的运算,因此 Z = X.*Y Z = X+Y 可以达到一样的效果,matlab只是将其封装成了如上述的函数而非魔法;(包括后续一系列函数也是这样)

图像直方图

image-20210131163813610

  • imhist(I) 画出图像 I 的色阶直方图(实际上是图像矩阵元素数值的直方图),只使用于灰阶图像;
  • [cunts, bin] = imhist(I) 返回直方图 x 轴的索引 bin 和对应的直方图高度(个数) cunts
  • histeq(I) 使图像直方图分布均匀,即增强图像的对比度; image-20210131165122516

图像几何变换

图像的几何变换实质上是将图像矩阵与某一变换矩阵做矩阵乘法: image-20210131170822398

图像旋转

image-20210131171407341

补充几个函数

函数 作用
Z = imabsdiff(X, Y) 两个图像的绝对差,返回差的绝对值(注意和imsubtract的区别)
imapplymatrix 对彩色图像的 RGB 对应的三个值线性组合(即赋不同权重组合),得到灰阶图像;
imcomplement 计算图像的补图,即将颜色反转
imlincomb 将多张图片线性组合(即按照不同的权重叠加)

练习

I = imread('rice.png');
subplot(131)
imshow(I)
J = immultiply(I, 2); % 增强亮度
subplot(132)
imshow(J)
J = histeq(J); % 再增强对比度
subplot(133)
imshow(J)

image-20210131181644511

I = imread('rice.png');
subplot(131); imshow(I)
J = immultiply(I, 2); % 增强亮度
subplot(132); imshow(J)
J = histeq(J); % 再增强对比度
subplot(133); imshow(J)

figure
subplot(121); imhist(I) % 原图的histogram
subplot(122); imhist(J) % 增强亮度和对比度后的histogram