数字图像处理笔记

一、图像格式转换

①RGB==>灰度图像    rgb2gray();

②RGB==>索引图像    rgb2ind();

③灰度图像==>索引图像   [X,map]=gray2ind(I,n);I为索引图像或二值图像,灰度图像n默认64,二值图像默认为2,map对应的颜色值为颜色图gray(n)中的颜色值;

④索引图像==>灰度图像   I = ind2gray(X,map),[X,map]对应索引图象,I为转换后的图像,输入的数据类型可以是double或unit8型,输出为double型;

⑤索引图像==>RGB图像   RGB = ind2rgb(X,map),输入图像数据类型为double\unit8\unit16型,输出为double型;

⑥其他图像==>二值图像    二值图像类型实际是logical型,功能函数im2bw(),输入不是灰度图像需要先将其转化为灰度图像,然后通过阈值法转换为二值图像;

二、图像处理常用函数

1. imadjust---调整图像强度值或颜色图

具体应用:调整灰度图像的对比度、制定对比度限制;调整彩色图像的对比度;基于标准差的图像对比度拉伸

2.分段线性变换

具体步骤:读取图片--转为灰度图像--获取图片大小---分x,y设置分段变换函数--显示输出

3.非线性对数变换

具体步骤:读取图片--RGB转灰度--为了防止后续计算数据溢出可以将数据转换为double型--进行对数变换--显示输出

4.图像平移操作,自定义immove函数,不考虑溢出时,溢出设为1;若考虑溢出,immove1函数;

具体就是获取图像大小--输入平移量--给出输出图像对应像素点和初始图像的关系;

5.图像的空间变换

使用imtransform---新版matlab使用imwarp函数

使用imtransform需要提前设置调用maketform函数         

具体过程:        T为对应的变换矩阵;

一般情况:     ;

一般写成矩阵形式:

实现放射变换(即平移、缩放、旋转、剪切)的变换矩阵,如下图所示

放射性变换类型

a

a

a2

b0

b1

b2

平移x,∆y

1

0

∆x

 

0

1

∆y

缩放

0

0

0

Sy

0

逆时针旋转角度

0

-sinθ

cosθ

0

水平切变

1

0

0

1

0

垂直切变

1

0

0

1

0

整体切边,

1

0

1

0

三、图像的邻域操作

  1. 滑动邻域操作函数nlfilter();  主要对图像进行中值滤波
  2. 列方向邻域操作函数colfilt();      在图像上执行列式邻域过滤、
  3. 分离邻域操作函数blockproc()。

该函数可以实现图像的缩放、分块、RGB颜色图像的波段转换,具体可以参考matlab说明文档

四、图像的区域选取

多边形区域 roipoly( ):创建多边形蒙版、多边形外为黑色,多边形内为白色;

灰度ROI区域选择函数 roicolor( ):可以根据颜色选择区域,可以进行边缘标记;

区域填充函数 roifill( ):用掩膜填充图像,或者对图像指定区域进行填充;

区域滤波函数 roifilt2( ):使用多边形蒙版对图像进行滤波,只对蒙版区域进行;

你可能感兴趣的:(matlab)