MatLab--Basics of Digital Image Processing

1. Digital Image Type


1.1 Binary image

concept:

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

Insert picture description here


Application scenario

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

1.2 Grayscale image

concept

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

Insert picture description here


Application scenario

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

1.3 Color image

concept:

Insert picture description here


Application scenario

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

1.4 Dynamic graphics

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


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

As a combination of multi-frame bitmaps, dynamic images have a large amount of data, and compression algorithms are generally used to reduce the amount of data.


1.5 Index image

Insert picture description here


1.6 Interconversion between different types of images

Insert picture description here

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

2. Numerical description of digital images

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

2.1 Commonly used coordinate systems

Insert picture description here


2.2 Data structure of digital image

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

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

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

2.3 Formats of common digital images

2.3.1 JPEG

Insert picture description here


2.3.2 GIF

Insert picture description here


2.3.3 TIFF

Insert picture description here


2.3.4 PNG

Insert picture description here


2.3.5 BMP

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

3. Read and display the image

利用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 function

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

调用格式:
% 实现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 Comprehensive example of rgb2hsv() and rgb2ycbcr():

Code:

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);

operation result:
Insert picture description here


3.7 gb2gray function

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

Code:

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');

operation result:
Insert picture description here


Comprehensive examples in this chapter:

Example 01: Write a program, open the "schoolNight.jpg" image, reverse it and display it.

Code:

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');

operation result:Insert picture description here


Example 02: Write a program, open a color image, and convert it into a grayscale image and a binary image.

Code:

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( '二值图像');

operation result:
Insert picture description here


Guess you like

Origin blog.csdn.net/I_r_o_n_M_a_n/article/details/115317312