熟练掌握有关MTALAB图像处理的知识。
matlab技术支持搜索网站
图像的初步处理
1.如何读入并在matlab中显示一幅图像
I=imread(‘文件名.扩展名’)→从当前的路径中读取图片文件。
imshow(I)→在图像窗口中显示该图片(比例固定)。
image(I)→通过数组显示图片(图像窗口中会有坐标轴而且图片比例可变)。
注:对于一幅图像,如果存储类型是unit8,那么相应的取值范围就是[0,255];如果是unit16,则取值范围是[0,65535];如果是双精度,则取值范围是[0,1]。
2,如何观察一幅图像的灰度分布情况并实现直方图均衡化。
imhist(I)→生成图像数组的直方图。
I2=histeq(I)→均衡化数组,增强数组对比度。
3.如何保存图像并检查新生成文件的内容。
imwrite(I2,‘文件名.扩展名’)→将图像写入指定命名指定格式的文件。
imfinfo(‘文件名.扩展名’)→查看图像文件的信息。
4.如何将图片颜色反转
imcomplement(I)→反转图片颜色。
5.如何提取图片的边缘
BW = edge(I,method) →使用method所对应的算法计算图片I的边缘。
图像处理的高级应用
1.形态开闭操作
J=imopen(I,SE)→对图像进行形态打开操作
J=imclose(I,SE)→对图像进行形态关闭操作
SE = strel(‘disk’,n)→半径为n的圆盘形结构元素
注:
- 开运算:它具有消除亮度较高的细小区域、在纤细点处分离物体,对于较大物体,可以在不明显改变其面积的情况下平滑其边界等作用。
- 闭运算:它具有填充白色物体内细小黑色空洞的区域、连接临近物体、同一个结构元、多次迭代处理,也可以在不明显改变其面积的情况下平滑其边界等作用
2.图像的四则运算
Z = imadd(X,Y)→图像加运算
Z = imsubtract(X,Y)→图像减运算
Z = immultiply(X,Y)→图像乘运算
Z = imdivide(X,Y)→图像除运算
3.调整图像的强度值
J=imadjust(I,[low_in high_in])→将 I 中的强度值映射到 J 中的新值,以使 low_in 和 high_in 之间的值映射到 0 到 1 之间的值。
J=imadjust(I,[low_in high_in],[low_out high_out]) →将 I 中的强度值映射到 J 中的新值,以使 low_in 和 high_in 之间的值映射到 low_out 到 high_out 之间的值。
注:常用语句J=imadjust(I,stretchlim(I),[0 1]),其中stretchlim主要用于自适应找到一个分割阈值向量来改变一幅图像的对比度。
4.图像类型转换
函数 | 功能 |
---|---|
dither | 使用抖动方法,根据灰度图像创建二进制图像或根据RGB图像创建索引图像 |
gray2ind | 根据一幅灰度图像创建索引图像 |
grayslice | 使用阈值截取方法,根据一幅灰度图像创建索引图像 |
im2bw | 使用阈值截取方法,根据一幅灰度图像、索引图像或RGB图像创建二进制图像 |
ind2rgb | 根据一幅索引图像创建一幅RGB图像 |
mat2gray | 通过数据缩放,再根据矩阵数据创建一幅灰度图像 |
rgb2gray | 根据一幅RGB图像创建一幅灰度图像 |
rgb2ind | 根据一幅RGB图像创建一幅索引图像 |
以灰度图像转二进制图像为例:
level=graythresh(I);
bw=im2bw(I,level);
注:graythresh函数的作用是使用 Otsu 方法计算全局图像阈值
5.利用霍夫变换检测图片中的几何要素
[H,theta,rho] = hough(BW)→计算二值图像 BW 的标准 Hough 变换 (SHT)。
imfindcircles(A,radius)→使用圆形霍夫变换查找圆