写在前面
别忘了小手戳一戳Ad~
不用下载也不用消费,点一下就可以嗷~
谢谢朋友们,大家的支持就是我不断更新的最大动力~~~
简单介绍一下,MATLAB是MathWorks公司开发的一套商业数学软件,MATLAB与Mathematica、Maple并称为三大数学软件,现在MATLAB已经广泛应用到了各行各业,包括数据分析、无线通信、深度学习、量化金融与风险管理、机器人、航空航天、汽车等各个领域。
用MATLAB进行图像处理的部分函数详解~
每天一个MATLAB小技巧(23)
场景对上一篇文章中,代码中涉及的函数详细讲解下,需要MATLAB抠图的源代码,可以从上一篇文章中获取。相关文章:MATLAB能P图?先跟我入个门~-每天一个MATLAB小技巧(22)操作
函数介绍:
1、imread(’filename’)
从指定文件中读取图像,若为多图像文件,则imread仅读取该文件中的第一个图像。
2、superpixels(A,NumLabels)
超像素分割,即计算图像A的超像素,并创建NumLabels数量的超像素块。
将数组A输出为L(double类型的矩阵),并返回实际计算得到的超像素数Numlabels。
superpixels函数使用的是简单线性迭代聚类(SLIC)算法。此算法将图像中所有像素按照是否具有相似值划分为多个区域,在图像处理运算中使用这些区域可以降低运算的复杂度。
注:
超像素概念是2003年Xiaofeng Ren(论文《Learning a
Classification Model for Segmentation》)提出和发展起来的图像分割技术,是指具有相似纹理、颜色、亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块。
它利用像素之间特征的相似性将像素分组,用少量的超像素代替大量的像素来表达图片特征,很大程度上降低了图像后处理的复杂度,所以通常作为分割算法的预处理步骤。通俗点讲,就是我们把图像中看起来比较接近的部分分成一块一块的来处理。
3、mask=boundarymask(L)
标记分割的区域边界,输出的mask为用二进制掩码形式表示的逻辑图像。
计算L矩阵中的区域边界,并输出用ture/false来表示边界位置的掩码,输出的mask逻辑图像中,ture表示边界位置,false表示非边界位置。
4、imoverlay(A,mask,color)
在图像A中,将逻辑图像mask中为ture的图像部分,填充为颜色“color”。
即用color颜色来表示上面分割的区域边界。
5、imshow(A,Name,Value)
可以使用Name-Value进行一些特殊运算后,显示图像A。
常用的运算比如说:
InitialMagnification:设置图像显示的初始放大倍率。
特殊数值:100(按照100%显示),fit(缩放整个图像以适合窗口)
用法:imshow(A, ‘InitialMagnification’,55)%将图像A按照55%的比例缩小,并显示缩放后的图像A。
6、drawpolygon
创建自定义多边形ROI(Region of Interest)
可以创建一个多边形区域以表示指定的ROI。我们既可以通过鼠标在图像上绘制ROI,也可以通过Name-Value以代码方式创建ROI。
创建ROI之后,我们可以对objectproperties, object functions, 和event notifications等进行设置以改变ROI的形状、位置、外观和动作。
常用用法:
1)roi=drawpolygon
创建一个Polygon对象并在当前轴上通过鼠标来绘制多边形roi。单击并拖动鼠标开始绘制,当绘制完成时,双击鼠标,即roi创建完成。
2)roi=drawpolygon(_____,Name,Value)
使用一个或多个Name-Value修改ROI外观和动作。
7、poly2mask
将ROI区域多边形转换为区域蒙版
BW=poly2mask(xi,yi,m,n)
定位边界位于坐标(xi,yi)处的ROI多边形,并计算面积为m×n的ROI蒙版BW。
其中多边形内的位置记为1,多边形外的位置记为0。
8、grabcut(A,L,ROI)
将图像A分割成前景和背景区域,L对图像A对应的矩阵,ROI为感兴趣区域的二进制掩码。
效果演示略
完