MATLAB与数学建模:影像处理(上)

本文介绍了使用MATLAB进行数字图像处理的基本方法,包括图像乘法、加法等运算原理及应用,同时涵盖了图像直方图调整与几何变换等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下内容为个人笔记,部分图片来源于郭老师课件或课程截图。
笔记汇总: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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值