MATLAB 图像处理基础(1)

本文主要记录利用MATLAB图像处理的学习笔记。

1.图像处理的流程:
在这里插入图片描述
导入影像,预处理,影像分割,后处理,分类。

2.如果导入图像是彩色图像,计算影像size:
在这里插入图片描述
size包括图像的行数、列数和第三个维度用来存储RGB,即:
在这里插入图片描述

可以通过索引到第三维访问图像的单个颜色平面,如1作为第三个索引来提取红色,2提取绿色,3提取蓝色。
Ig = I(:,:,1); %红
Ig = I(:,:,2);%绿
Ig = I(:,:,3);%蓝

3.大多数图像使用无符号8位整数(uint8)数据类型,它存储从0到255的整数。
利用max函数查找所有元素的最大值:

M = max(A,[],'all') %找出A中所有元素的最大值。

4.imsplit()函数:将多通道图像分割成单独的通道.
用法:[c1,c2,c3,…,ck] = imsplit(I)
返回k个图像的集合,代表k通道图像I中的单个通道。

5.为什么RGB影像要转换成灰度影像
(1)当载入内存时,灰度图像占RGB图像所需空间的三分之一。
(2)由于灰度图像具有三分之一的数据,它需要更少的计算能力,可以减少计算时间。
(3)灰度图像在概念上比RGB图像简单,因此在处理灰度图像时,开发图像处理算法可以更直接。

RGB planes:Height * Width * 3(多一维度用于存储RGB信息)
Grayscale:Height * Width

6.利用im2gray()函数将彩色影像RGB转换成灰度影像Grayscale。
Ags = im2gray(A)
由im2gray创建的灰度图像是一个由强度值组成的单一平面。im2gray函数将RGB值转换为灰度值,将R、G、B分量加权和:
在这里插入图片描述
7.Contrast and Intensity Histograms 对比度和直方图
强度直方图根据像素的强度值将其分离到多个容器中。例如,深色图像在直方图的低端有许多像素。明亮区域的像素被收纳在直方图的高端。

imhist(A) 生成直方图;
imadjust(A)可以调整图像,增强对比度;imadjust函数一般只对灰度影像有效,除非引入其他参数。

imlocalbrighten():增强low-light影像,效果如下图:
图片来自官方help文档
【注】:图片来自MATLAB帮助文档

8.小结:
imread 读入影像
imshow 显示影像
size 计算影像大小
imhist 绘制影像直方图(灰度)
imadjust 调整灰度影像的亮度或彩色影像的颜色矩阵。

9.Image Viewer app 影像预处理工具
使用方法:
(1)输入imtool;
在这里插入图片描述

(2)下载Image Processing Toolbox;
(3)在APP菜单栏搜索 Image Viewer;
在这里插入图片描述
可以打开影像,查看像元属性信息、调整对比度等。

10.影像分割Segmenting
影像分割:将一幅图像分割成不同的部分称为图像分割。
(1)使用逻辑运算符为影像定义阈值+直方图
强度阈值(Intensity Thresholding):通过设置阈值,将目标类设为1,背景设为0.

设置阈值代码:

img1 = imread("IMG_004.jpg"); %导入影像
gs1 = im2gray(img1); %转换成灰度影像
gsAdj1 = imadjust(gs1); %对灰度影像进行亮度处理
imhist(gsAdj1) %绘制直方图,通过直方图进行阈值判断
BW1 = gsAdj1 >175; %设置阈值
imshowpair(img1,BW1,'montage') %显示图像

(2)自动选择阈值
利用imbinarize 函数可以自动选择阈值。
用法:

BW= imbinarize(I);%默认情况下,imbinized使用一个全局阈值-图像中的每个像素都使用相同的阈值。
BW = imbinarize(I,method) %creates a binary image from image I using the thresholding method specified by method: 'global' or 'adaptive'.

一般自选的阈值比通过直方图手动选取的阈值效果要差。

imbinarize函数还有一种用法,可以通过设置参数,调整前景与后景的亮度。一般默认情况下,影像的前景是亮的(bright),背景是暗的(dark)。

BW = imbinarize(I,'adaptive',Name,Value);
BW = imbinarize(I,'adaptive',"ForegroundPolarity","dark");%设置前景是暗的

在这里插入图片描述
11. sum函数
sum函数用于计算数组元素的总和。
用法:

S = sum(A,dim)

S = sum(A,dim)返回沿dim维度的和。例如,如果A是一个矩阵,那么sum(A,2)是一个列向量,包含每一行的和;sum(A,1)是一个行向量,包含每一列的和。
在这里插入图片描述
12. plot函数
用法1:

plot(Y)%创建Y中的数据与每个值的索引的二维线图。

如果Y是一个向量,那么x轴缩放范围从1到长度(Y)。
如果Y是一个矩阵,那么plot函数画出Y的列与行号的关系。x轴的刻度范围从1到Y的行数。
如果Y是复数,那么plot函数将绘制Y的虚部与Y的实部,这样plot(Y)等价于plot(real(Y),imag(Y))。

13.提高分割精度
可以通过两种方式来改进分割:在二值化前对图像进行预处理,以及对二值化图像本身进行后处理。主要技术包括:去噪处理、背景隔离和减法、二值形态学。

(1)去噪处理:Noise Removal

  • 平滑像素强度值,以减少变化对二值化的影响。

(2)背景隔离和减法:Background Isolation and Subtraction

  • 在二值化之前隔离并去除图像的背景。

(3)二值形态学:Binary Morphology

  • 在二值图像中强调特定的模式或形状。

14.spatial filter空间滤波
利用滤波器对影像进行平滑处理,滤波器filter是一个矩阵(类似mask)。在影像中放入一个filter时,会创建一个window。
在这里插入图片描述
线性滤波:
线性滤波器的原始数据与滤波结果是一种算术运算,即用加减乘除等运算实现,如均值滤波器、高斯滤波器等。

非线性滤波:
非线性滤波器的原始数据与滤波结果是一种逻辑关系,也就是用逻辑运算来实现的,比如最大值滤波器、最小值滤波器、中值滤波器等,是通过比较一定邻域内的灰度值大小来实现的。

  1. fspecial函数用于创建滤波器
    用法:
h = fspecial("average",n) %创建n*n的平均滤波器

16.imfilter函数
对影像进行滤波处理:

B = imfilter(A,h)
  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
图像处理工具箱\@uint8\Contents.m ..............\......\contourc.m ..............\......\contours.m ..............\......\dct2.m ..............\......\idct2.m ..............\applylut.c ..............\applylut.dll ..............\applylut.m ..............\ball1.gif ..............\bestblk.m ..............\blkproc.m ..............\bmpread.m ..............\bmpwrite.m ..............\bwarea.m ..............\bweuler.m ..............\bwfill.m ..............\bwlabel.m ..............\bwmorph.m ..............\bwperim.m ..............\bwselect.m ..............\cmgamdef.m ..............\cmgamma.m ..............\cmpermute.m ..............\cmunique.m ..............\col2im.m ..............\colfilt.m ..............\Contents.m ..............\convmtx2.m ..............\corr2.m ..............\dct2.m ..............\dctmtx.m ..............\dctmtx2.m ..............\dilate.m ..............\dither.m ..............\edge.m ..............\erode.m ..............\freqz2.m ..............\fsamp2.m ..............\fspecial.m ..............\ftrans2.m ..............\fwind1.m ..............\fwind2.m ..............\getimage.m ..............\getline.m ..............\getpts.m ..............\getrect.m ..............\gifread.m ..............\gifwrite.m ..............\gray2ind.m ..............\grayslice.m ..............\hdfpeek.m ..............\hdfread.m ..............\hdfwrite.m ..............\histeq.m ..............\idct2.m ..............\im2bw.m ..............\im2col.m ..............\im2double.m ..............\im2uint8.m ..............\imadjust.m ..............\imapprox.m ..............\imcontour.m ..............\imcrop.m ..............\imfeature.m ..............\imhist.m ..............\immovie.m ..............\imnoise.m ..............\impixel.m ..............\improfile.m ..............\imresize.m ..............\imrotate.m ..............\imshow.m ..............\imslice.m

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值