1.数字图像是用一个数字矩阵来表示的,数字阵列中的每个数字,表示数字图像的一个最小单位,称为像素。
2.数字图像处理可以理解为两个方面的操作:一个是图像到图像的处理(如图像的灰度转换,图像增强等),另外一个是图像到非图像的一种表示,比如图像的测量。
3.数字图像处理的研究内容有很多个方向,比如:
·图像数字化:将一幅图像以数字的形式表示,主要包括采样和量化两个过程。
·图像增强:将一幅图像中的有用信息进行增强,同时对无用的信息进行抑制,提高图像的可观察性。
·图像的几何变化:改变图像的大小、形状等。
·图像的变换:通过数学的方法,将空间域的图像信息 转换 到 频域、时频域等空间进行分析。
·图像识别与理解:通过对图像中各种不同的物体特征进行量化描述后,将其所期望获得的目标物进行提取,并且对所提取的目标物进行一定的定量分析。
4.位图可以使用二维的矩阵进行表示,不同的格式图像,存储格式不一样,主要有:
·二值图像:图像像素使用二维矩阵表示,矩阵的值就是像素的颜色值,值只有两个值0和1(或者0和某个不为0的值,比如0和255),只能表示两种颜色:黑和白,一般值越大越趋于白;
·8位索引图像:图像像素使用二维矩阵表示,但是矩阵的值不是像素的颜色值,矩阵的值表示索引表的序号;也就是说,8位索引图像需要一个矩阵和一张索引表来表示,索引表有256个序号,每个序号对应一组RGB值,表示了一种颜色,因此8位索引图像的一个像素有256中颜色变化。
8位索引图像有彩色图像和灰度图像之分,灰度图像的RGB值相等且都等于序号的值;而彩色图像的RBG不相等。
·24位真彩图:也是用矩阵表示,图像像素直接用RGB颜色显示,而不是通过颜色索引表。图像的像素用三个变量表示即(R,G,B),每个变量从0~255变化,因此一个像素也就是8bit*3=24bit,一个像素用24bit表示可以有2^24种颜色。
今天主要学的是:
·RGB图像转为灰度图像
·有颜色的索引表位图转换成灰度图
·RGB图像转为索引图像
·灰度图像转为索引图像
·灰度图像转为二值图像
·RGB图像转为二值图像
1、RGB图像转为灰度图像
这里的RGB图像为任何一张彩色图,然后经过转换之后,得到一张灰度图像,使用matlab实现如下所示:
close all ;%关闭所有文件
clear all ;%清除所有变量
clc ; %清屏
X=imread('Hydrangeas.jpg');%读入RGB图像
I=rgb2gray(X);%进行灰度变化
set(0,'defaultFigurePosition',[100,100,1000,500]);%设置显示图像的窗口大小
set(0,'defaultFigureColor',[0 0 0]);%设置显示的背景颜色
subplot(121),imshow(X);%显示读入的图像
subplot(122),imshow(I);%显示进行灰度变化后的图像
2.有颜色的索引表位图转换成灰度图
但是这里输入的8bit的带索引表的彩色图像,然后将它转换成灰度图。代码如下所示:
close all ;
clear all ;
clc ;
[X,map] = imread('Hydrangeas.bmp');%读入图片
newmap = rgb2gray(map);%将彩色的索引表转换成灰色的索引表
figure, imshow(X,map);%显示原始的图片
figure, imshow(X,newmap);%显示转换后的图片
close all ;%关闭所有文件
clear all ;%清除所有变量
clc ; %清屏
X=imread('Hydrangeas.jpg');%读入RGB图像
I=rgb2gray(X);%进行灰度变化
set(0,'defaultFigurePosition',[100,100,1000,500]);%设置显示图像的窗口大小
set(0,'defaultFigureColor',[0 0 0]);%设置显示的背景颜色
subplot(121),imshow(X);%显示读入的图像
subplot(122),imshow(I);%显示进行灰度变化后的图像