图像储存:
图像文件由文件头、调色板数据、像素数据组成。
文件头储存了特征参数,如类型、宽度高度、位数、压缩类型、首地址、有无调色板等。
调色板仅存在于二值、16色、256色图像中。GIF文件不支持真彩色,故一定有调色板。
RGB颜色模型,三个分量为0~255时,可表示16777216种颜色。
RGB相等时,为灰度级。
matlab数据类型一般为double(64位)。matlab提供了特殊数据类型uint8——8位无符号整数。
索引图像:包含一个数据矩阵X和一个颜色映射矩阵Map。Map为三列和若干行的矩阵,是按图像中颜色值进行排序后的数组。
函数image()可以直接显示8位图像。
对于索引图像,double型和uint8型并没有区别。COLORMAP(MAP) 用MAP矩阵映射当前图形的色图。
灰度图转换:
uint8转换为double:I64 = double(I8) / 255
double转换为uint8:I8 = uint8(round(I64*255))
普通图像转换函数:im2double(); im2uint8(); im2uint16() 涉及运算时,要转换成double型,否则可能产生溢出。
matlab中的图像转换
图像转换——不同文件格式的转换;不同储存形式的转换。
matlab中,图像数据分为索引图像、RGB彩色图像、灰度图像和二值图像4种
索引转为灰度图:I = ind2gray(X,MAP), X为图像矩阵变量,MAP为颜色图数组变量
灰度转为索引:[X,MAP] = gray2ind( I, [n]) n为颜色值,默认为64.
RGB转为索引:[X,MAP] = rgb2ind(RGB)
索引转为RGB:RGB = ind2rgb(X,MAP)
RGB转为灰度:I = rgb2gray(I_RGB) 数字图像处理中,需要用的往往是灰度图
转换为二值图像:BW = im2bw(X,MAP,level) BW = im2bw(I, level)
matlab中图像的基本操作
图像的读取:
clear; %清除matlb平台中所有变量
I = imread = ('baboon.jpg;); %读取图像。文件名要用单引号括起来。
size(I); %求出二维图像的大小
whos I %显示一个数组的附加信息。
图像的写入:
imwrite( I, 'filename');
图像的显示:
imshow(f, G) %G表示该图像的灰度级数,默认为256
imshow(f, [low, high]) %所有小于low的值都显示黑色,大于high的值都显示白色
用figure()函数创建窗口对象。imshow()只有当没有可用的窗口对象时才创建一个。figure()中的参数表示图形窗口对象的句柄。
关闭窗口,用close()函数,及close all命令
清楚窗口中内容 clf()函数
subplot(m, n, p) %表示图排成m行,n列,p表示图所在的位置。
subimage()函数显示时会加上坐标。
以上内容来自《数字图像处理:原理与实践(matlab版)》左飞著,电子工业出版社。此为学习笔记。