MATLAB 图像处理
基础
简介
图像类型
灰度图像
二值图像
RGB图像
索引图像
颜色图
colorcube 获取颜色图
colormap 更改颜色图
HSV彩色空间
rgb2hsv 将RGB颜色转换为HSV颜色
图像坐标系
像素索引式
空间坐标式
函数
imread 读入图像
imshow 显示图像
imtool 用窗口显示图像
image 矩阵显示图像
imagesec 待补充
colorbar 显示彩色条
montage
zoom
warp
subimage
impixel 显示像素信息
impixelinfo 显示像素信息
imwrite 保存图像
imfinfo 显示内存信息
mat2gray 矩阵灰度化
rgb2gray 彩色灰度化
im2uint8 转换为8位
im2double 转换为双精度
VideoReader 读取视频文件
mmfileinfo 多媒体文件信息
readFrame 读取视频帧数据
hasFrame 判断读取成功
movie 播放视频
getframe 捕获坐标区或图像作为影片帧
immovie
imiplay
imbinarize 灰度二值化
imadjust 调整灰度或颜色图
分段线性变换
对数变换
stretchlim 对比度计算 待补充
对数函数-没懂
对比度拉伸函数(公式)-没懂
imadd 叠加图像
imnoise 添加噪声
imsubstrcat 减去图像
imabsdiff 两图像的绝对差
immultiple 两图像相乘
imdivide 两图像相除
imcomplement 图像反转
imlincomb 图像线性组合
imresize 调整图像大小
rescale 缩放标定元素值
imrotate 旋转图像
imcrop 裁剪图像-??返回的坐标位置
centerCropWindow2d 创建矩形中心裁切窗口-没看完
rectangle 画尖角圆角矩形
imtranslate 平移图像
affine2d 二维仿射几何变换
**待补充**
invert 逆几何变换
isrigid 判断是否刚性变换
isSimilarity 判断是否相似变换
isTranslation 判断是否纯平移
outputLimits 待补充
transformPointsForward 前向几何变换-待补充
transformPointsInverse -待补充
imwarp 图像几何变换
nlfilter 滑动邻域操作
colfilt 列方向邻域操作/非线性滤波 待补充
im2col 重排矩阵加速块处理
col2im im2col的逆-待补充
blockproc 非重复块处理 待补充
block_struct 块结构体 待补充
padarray 填充图像(矩阵)
roipoly 指定多边形ROI
roicolor 基于颜色选择ROI
ismember 待补充
createMask 创建二值掩码图像
ROI 相关对象
regionfill 区域填充
roifilt2 ROI区域滤波
imhist 图像直方图
stem 待补充
histeq 直方图均衡化规定化 算法没懂 待补充
mean2 计算矩阵均值
std2 计算矩阵标准差
std 计算向量标准差
corr2 二维相关系数
corr 线性或秩相关性 没懂
fspecial 创建预定义的二维滤波器
imfilter 图像滤波
conv2 二维卷积
filter2 二维数字滤波器
medfilt2 中值滤波
ordfilt2 排序滤波
wiener2 二维自适应滤波 待补充
fft 快速傅里叶变换 待补充
fft2 二维快速傅里叶变换
nextpow2 用于填充fft 待补充
fftshift 将零频分量移到频谱中心
ifftshift 逆零频平移
stem 绘制离散序列数据
atan 反正切
atan2 四象限反正切
imag 取复数的虚部
real 取复数实部
angle 相位角
ifft2 二维快速傅里叶逆变换
imapprox 近似索引图
rgb2ind 将RGB转换为索引图像
dither 转换图像,抖动
grayslice 灰度图转换为索引图
gray 灰度颜色数组
flip 翻转元素顺序
flipud 将数组上下翻转
fliplr 将数组左右翻转
gray2ind 灰度、二值转换为索引图
ind2gray 索引转换为灰度图像
ind2rgb 索引图像转换为RGB图像
颜色空间转换
edge 边缘检测
hough 霍夫变换
houghpeaks 霍夫变换中的峰值
《数字图像处理matlab版》原书中的图像资源,自取https://pan.baidu.com/s/1NDg_BbVuZipQm1f3KQzJ-Q (提取码x14a)
《数字图像处理matlab版》还是得啃啊,要不然原理都不懂
软件自带的帮助文档,部分没有中文解释,最好配合在线官方文档;同时文档中的“尝试此例”很有用,值得运行
基础
简介
图像关于x,y坐标和幅度是连续的。但是数字图像关于x,y坐标和幅度是离散的。
离散:
采样:坐标值数字化
量化:幅度数字化
MATLAB数字坐标原点为(1,1)
注意某些函数对图像坐标的行列定义是不一样的
图像类型
数据类型:无符号,有符号;8、16、32位;char(16位);logic(8位)类型
灰度图像
无符号8位,无符号16位,double,single。double和single类的灰度图像通常会归一化到0-1范围内(没懂)
二值图像
二值图像是只含有0和1的逻辑数组,不是数值数组
应用类型转换函数(不限于二值图像)
logic,im2uint8,im2unit16,im2double,im2single,mat2gray
mat2gray(A,[Amin,Amax])
将图像转换为标定(自动标定)到[0,1]范围内的double类型的数组,注意返回的还是double类型的数组,范围[0,1]
mat2grat(A) 没有范围裁剪
logical(A)
如果是只有数值0和1,则转换为逻辑0和1
如果有其他数,A 中的任意非零元素都将转换为逻辑值 1 (true),零则转换为逻辑值 0 (false)。复数值和 NaN 不能转换为逻辑值
RGB图像
可以看成三幅灰度图像形成的堆叠,显示彩色与显示器有关
如果数据类型为double,那么取值范围为[0,1]
如果为Uint8,uint16则不会归一化到[0,1]
图像位深度,RGB图像,如果数据类型为8位,则为深度为8X3=24位
组成RGB图像
串联三个灰度图像形成RGB图像,rgb=cat(3,r,g,b) 形成RGB图像的方式可以不同,行串联,列串联,第三方向串联
提取RGB的每个通道分量
r=rgb(:,:,1)
g=rgb(:,:,2)
b=rgb(:,:,3)
RGB(2,5,:) 返回2行5列像素的RGB值
《书》自定义函数,可以从某个点观察RGB彩色空间立方体,P120
索引图像
索引图像将图像的灰度值直接映射到彩色值,
索引图像有两个分量,整数矩阵x,和彩色映射矩阵map。
map:mX3数组,double类型的[0,1]范围内数组,m等于颜色数
索引图与灰度图,map索引数组每行的三列值相等,则为灰度图
索引图像,对于
颜色图
颜色图数值取值范围为[0,1],的矩阵,用于定义诸如曲面、图像以及补片之类的图形对象的颜色,可以 通过将数据值映射到颜色图中的颜色来绘制这些对象
colorcube 获取颜色图
文档没懂
colormap 更改颜色图
更改所属坐标区或图窗的颜色图
colormap(map) map是定义的颜色图矩阵,注意数值元素为[0,1]
colormap map 将当前(相邻绘图语句)图窗的颜色图设置为系统自带的一种预定义颜色图
colormap(target,map) 为特定图窗指定不同的颜色图
ax1 = subplot(2,1,1);
surf(peaks)
colormap(ax1,spring)
map=colormap 返回当前图窗的颜色图,颜色图为矩阵形式
mesh(peaks)
colormap(parula(5)) 设定数值来指定颜色图的颜色数,parula为系统预定义的一个颜色图
HSV彩色空间
rgb2hsv 将RGB颜色转换为HSV颜色
HSV = rgb2hsv(RGB) 转换为色调、饱和度、明度
hsvmap = rgb2hsv(rgbmap) RGB颜色图,转换为HSV颜色图,见文档
输入是RGB图像
返回的HSV色彩三通道的值为[0,1],其为double类型
HSV空间待补充
图像坐标系
像素索引式
离散的形式,相当于矩阵索引
空间坐标式
表示图像中位置的另一种方法是使用连续变化的坐标系,而不是离散的索引。对于这种坐标,您可以想象图像覆盖在一个方形补片之上。在像这样的空间坐标系中,图像中的位置是平面上的位置,它们用 x 和 y(而不是像素索引系统中的行和列)来描述。从笛卡尔坐标角度来看,(x,y) 位置(如 (3.2,5.3))是有意义的,并且不同于像素 (5,3)
内部坐标系
默认情况下,工具箱使用与图像像素索引对应的图像空间坐标系。它称为内部坐标系
任何像素的中心点的内部坐标 (x,y) 与该像素的列和行索引相同
注意,相对于像素索引 (5,3),坐标设定 (3.0,5.0) 的顺序在内部坐标中是反向的。
一般如果函数使用空间坐标式会指明,
世界坐标系
见文档
函数
imread 读入图像
读图像
I=imread('pout.tif') 读取特定格式的图像
I=imread('filename') 从指定文件读取图像,若文件包含多幅图像则读取第一幅图像
I=imrad('filename',idx) 从多福图像中读取指定图像,idx=1:5读取前5幅
[X,map]=imread('filename') X为索引图像,map为关联的图像,自动将map索引彩色图像转换为double类型的[0,1]区间内
其他类型图像间文档
imshow 显示图像
显示图像
imshow(I)
[A,map]=imshow('1.jpg')
A为索引图,uint8类型,map为阈值关联的彩色图,颜色图的数值范围为[0,1]且为double类型
imshow(I,[low high]) (等价于语法imshow(I,'DisplayRange',[low high]) )
小于low的值显示为黑色,大于high的值显示为白色,范围内的灰度值不变,
imshow(I,[]) low=min(I(:)) high=max(I(:))
imshow(I) 没有指定显示范围,则根据读入的数据类型,确定显示范围 uint8最大显示范围为[0,255],single和double为[0,1]z