MatLab--数字图像处理基础

1. 数字图像类型


1.1 二值图像

概念:

二值图像是指每个像素值为О或为1的数字图像,
一般表示为黑白两色,如图所示。

在这里插入图片描述


应用场景

由于只有两种颜色,只能表示简单的前景和背景,
二值图像一般不用来表示自然图像;但因其易于运算,
多用于图像处理过程后期的图像表示,
如用二值图像表示检测到的目标模板、
进行文字分析、应用于一些工业机器视觉系统等。

1.2 灰度图像

概念

灰度图像中每个像素只有一个强度值,呈现黑、灰、白等色,
如图2-20所示,图中共有3×3个像素点,每个像素点呈现强度不一的灰色,
数值表示为0~255之间的数。

在这里插入图片描述


应用场景

灰度图像没有色彩,一般也不用于表示自然图像。
因数据量较少,方便处理,很多图像处理算法都是面向灰度图像的,
彩色图像处理的很多算法也是在灰度图像处理的基础上发展而来的。

1.3 彩色图像

概念:

在这里插入图片描述


应用场景

彩色图像色彩丰富,信息量大,目前数码产品获取图像一般为彩色图像。

1.4 动态图形

动态图像是相对于静态图像而言。静态图像是指某个瞬间所获取的图像,
是一个二维信号,前面所讲图像都是指静态图像。
动态图像是由一组静态图像按时间顺序排列组成的,
是一个三维信号f(a , y ,t),其中t是时间。
动态图像中的一幅静态图像称为一帧,这一帧可以是灰度图像,
也可以是彩色图像。


由于人眼的视觉暂留特性(其时值是1/24s),
多帧图像顺序显示间隔△t≤1/24s 时,产生连续活动视觉效果。
动态图像的快慢由帧率(帧的切换速度)决定
,电视的帧率在NTSC制式下是30帧/s,在 PAL制式下是25帧/s。

动态图像作为多帧位图的组合,数据量大,一般要采用压缩算法来降低数据量。


1.5 索引图像

在这里插入图片描述


1.6 不同类型图像间的互相转化

在这里插入图片描述

式中,Y,I∈[0,255]

2. 数字图像的数值描述

数字图像的数值描述是用数值方式来表示一幅数字图像。
矩阵是二维的,所以可用矩阵来描述数字图像。
同时,前面已经提到,量化值是整数,
因此描述数字图像的矩阵一般是整数矩阵。

2.1 常用的坐标系

在这里插入图片描述


2.2 数字图像的数据结构

数字图像的存储一般包括两部分:文件头和图像数据。
文件头是图像的自我说明,一般包含图像的维数、类型、
创建日期和某类标题,
也可以包含用于解释像素值的颜色表或编码表(如JPEG文件),
甚至包含如何建立和处理图像的信息。
图像数据一般为像素颜色值或压缩后的数据。

图像压缩对于图像信号来讲十分重要。
图像数据量大,许多格式提供了对图像数据的压缩,
可以使图像数据减少到原来的30%,甚至减少至3%,
具体压缩率取决于需要的图像质量和所用的压缩方法。

压缩方法分为无损压缩和有损压缩,
无损压缩方法在解压时能完全恢复出原始图像,
而有损压缩则不能完全恢复原始图像。
数字图像和符号数字信息不同,
丢失或改变几位数字图像数据不会影响人或机器对图像内容的理解。

2.3 常见数字图像的格式

2.3.1 JPEG

在这里插入图片描述


2.3.2 GIF

在这里插入图片描述


2.3.3 TIFF

在这里插入图片描述


2.3.4 PNG

在这里插入图片描述


2.3.5 BMP
BMP(即Bitmap)是Window操作系统中的标准图像文件格式,
可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),
使用非常广。它采用位映射存储格式,除了图像深度可选以外,
不采用其他任何压缩。因此,BMP文件所占用的空间很大。
BMP文件的图像深度可选1bit、4bit、8bit及24bit。
BMP文件存储数据时,图像的扫描方式是从左到右、从下到上的顺序。
由于BMP文件格式是Windows环境中交换与图形有关数据的一种标准,
因此在Windows环境中运行的图形图像软件都支持BMP格式。

3. 读取并且显示图像

利用MATLAB仿真工具,实现图像文件的读取、显示及色彩变换。

3.1 imread()

功能:
实现多种类型图像文件的读取﹐如BMP、GIF、JPEG、PNG,RAS等。

调用格式:
% 获取图像
Image1=imread('../images/peppers.JPG');

A=imread(FILENAME,FMT)。
FILENAME为图像文件名,若文件不在当前目录或MATLAB目录下,
则需要列全文件路径。FMT为文件的扩展名,指定文件类型。
A为图像数据矩阵。

3.2 imshow()

功能:显示图像。

调用格式:
% 显示Image2图像
imshow(Image2);

imshow(FILENAME):显示FILENAME指定的图像,
若文件包括多帧图像,
则显示第一帧,且文件必须在MATLAB的当前目录下。

3.3 imwrite函数

功能:实现图像文件的保存。

调用格式:
% 实现Image2图像文件的保存
imwrite(Image2,'../images/changecolor.jpg');

3.4 rgb2hsv()

功能:实现RGB数据图像向HSV数据图像的转换。

调用格式:HSV=rgb2hsv(RGB)。
RGB为RGB彩色图像,为三维矩阵;
HSV为三维HSV图像矩阵,三维依次为H、S、V,取值均在[o,1]范围内。

3.5 rgb2ycbcr ()

功能:实现 RGB数据图像向YCbCr 数据图像的转换。
调用格式:YCBCR=rgb2ycbcr(RGB)。

3.6 rgb2hsv()和rgb2ycbcr ()综合示例:

代码:

orgImg = imread('../images/lotus.bmp');
ycbImg = rgb2ycbcr(orgImg);%将图片进行ycbcr化
hsvImg = rgb2hsv(orgImg);%将图片将星hsv化
 
%显示图片
figure;
subplot(131),imshow(orgImg),title('原图');
subplot(132),imshow(ycbImg),title('ycbcr图片');
subplot(133),imshow(hsvImg),title('hsvImg图片');
%显示数据
disp(ycbImg);
disp(hsvImg);

运行结果:
在这里插入图片描述


3.7 gb2gray函数

功能:实现彩色图像灰度化。
调用格式:I=rgb2gray(RGB)。

代码:

orgImg = imread('../images/peppers.JPG');
 
%通过rgb2gray()方法进行灰度化
grayImage = rgb2gray(orgImg);
 
%通过分离RGB三个通道进行灰度化
imageR = orgImg(:,:,1);%获取原图片的R通道
imageG = orgImg(:,:,2);%获取原图片的G通道
imageB = orgImg(:,:,3);%获取原图片的B通道
 
%通过im2bw()方法直接将图片黑白化
bwImg = im2bw(orgImg);
figure;
subplot(231),imshow(orgImg),title('原图');
subplot(232),imshow(grayImage),title('grayImage');
subplot(233),imshow(imageR),title('R');
subplot(234),imshow(imageG),title('G');
subplot(235),imshow(imageB),title('B');
subplot(236),imshow(bwImg),title('bwImg');

运行结果:
在这里插入图片描述


本章综合示例:

示例01: 编写程序,打开“schoolNight.jpg”图像,对其取反并显示。

代码:

I= imread( 'images/schoolNight.jpg' );
J= 255-I;
subplot( 1,2,1) ,imshow(I) ,title('原始图像');
subplot( 1,2,2),imshow(J) ,title( '反色图像');
imwrite(J , 'images/schoolNighC.jpg');

运行结果:在这里插入图片描述


示例02: 编写程序,打开彩色图像,将其转化为灰度图像和二值图像。

代码:

Image1 = im2double( imread( 'images/lotus.bmp ' ) );
imshow(Image1);
%打开图像并将像素值转化到[0,1]
r = Image1( : , :,1);
%提取红色通道
g = Image1( : , :,2);
%提取绿色通道
b = Image1( : , :,3);
%提取蓝色通道
Y= 0.299 * r+ 0.587* g+0.114 * b;
%计算亮度值¥实现灰度化
I = (r+ g+ b)/3;
%计算亮度值Ⅰ实现灰度化
figure,imshow( Y) ,title( '亮度图Y');
figure,imshow( I),title( '亮度图I');
BW= zeros( size(Y));
BW(Y > 0.3)= 1;
%阈值为0.3,实现灰度图二值化
figure,imshow(BW),title( '二值图像');

运行结果:
在这里插入图片描述


  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeJiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值