skimage函数学习
morphology(凸包)
from skimage importmorphology
covex_hull_image
convex_hull_image将图片中所有目标看作一个整体,计算一个最小凸多边形,如果图中有多个目标物体,每一个物体需要计算一个最小凸多边形,则需要使用convex_hull_object函数。
from skimage import morphology
morphology.convex_hull_image(image)
#凸包是指一个凸多边形,凸多边形将图片中所有的白色像素点都包含在内
#输入:二值图像
#输出:逻辑二值图像,在凸包内的点为True,否则为False
convex_hull_object
from skimage import morphology
morphology.convex_hull_object(image, neighbors=8)
#输入:image是一个二值图像
#输入:neighbors表示采用4连通还是8连通,默认为8连通。
#输出:逻辑二值图像,在凸包内的点为True,否则为False
remove_small_objects
from skimage import morphology
morphology.remove_small_objects(ar, min_size=64, connectivity=1, in_place=False)
#功能:删除零散的、小的区域
#输入:ar 待操作的bool型数组
#输入:min_size最小连通区域尺寸,小于该尺寸的都将被删除,默认为64.
#输入:connectivity邻接模式,1表示4邻接,2表示8邻接。
#输入:in_place如果为True,表示直接在输入图像中删除小块区域,否则进行复制后再删除。默认为False。
#输出:删除小块区域的二值图像
measure(连通标记+边缘轮廓)
在二值图像中,如果两个像素相邻且值相同(同为0或同为1),那么就认为这两个像素点在一个相互连通的区域内。而同一个连通区域的所有像素点,都用同一个数值来进行标记,这个过程叫连通区域标记。在判断两个像素是否相邻时,通常采用4连通或8连通判断。在图像中,最小的单位是像素,每个像素周围有8个邻接像素,常见的邻接关系有2种:4邻接与8邻接。4邻接一共4个点,即上下左右,8邻接的点一共有8个,包括对角线位置的点。
在skimage包中,用measure子模块下的label()函数来实现连通区域标记。
from skimage import measure
label
from skimage import measure
measure.label(image, connectivity=None)
#输入:image表示需要处理的二值图像
#输入:connectivity表示连接的模式,1代表4邻接,2代表8邻接
#输出:标记数组(labels),从0开始标记。
regionprops
如果想分别对每一个连通区域进行操作,比如计算面积、外接矩形、凸包面积等,则需要调用measure子模块的regionprops()函数。
from skimage import measure
measure.regionprops(label_image)
#输入:label_image标记数组
#输出:area 区域内像素点总数
#输出:bbox 边界外接框
#输出:centroid 质心坐标
#输出:convex_area 凸包内像素点总数
#输出:convex_image 和边界外接框同大小的凸包
#输出:coords区域内像素点坐标
#输出:eccentricity 离心率
#输出:equivalent_diamenter和区域面积相同的圆的直径
#输出:euler_number区域欧拉数
#输出:extent区域面积和边界外接框面积的比率
#输出:filled_area区域和外接框之间填充的像素点总数
#输出:perimeter区域周长
#输出:label区域标记
label_img = measure.label(mask_erode, connectivity=2)
props = measure.regionprops(label_img)
if props:areas = [r.area for r in props]areas.sort(reverse=True)img_result = morphology.remove_small_objects(label_img, areas[0], connectivity=8, in_place=True)# props_sort = sorted(props, key=lambda p: p.area, reverse=True)# img_result = morphology.remove_small_objects(label_img, props_sort[0].area, connectivity=8, in_place=True)# img_result = morphology.convex_hull_image(img_result)img_result = np.where(img_result > 0, 255, 0)
find_contours
from skimage import measure
measure.find_contours(array, level)
#功能:检测二值图像的边缘轮廓
#输入:array一个二值数组图像
#输入:level在图像中查找轮廓的级别值
#输出:轮廓列表集合,可用for循环取出每一条轮廓。
subdivide_polygon
采用B样条(B-Splines)来细分多边形的曲线,该曲线通常在凸包线的内部。
from skimage import measure
measure.subdivide_polygon(coords, degree=2, preserve_ends=False)
#功能:逼近多边形曲线
#输入:coords坐标点序列
#输入:degreeB样条的度数,默认为2
#输入:perserve_ends如果曲线Wie非闭合曲线,是否保存开始和结束点坐标,默认为False。
#输出:细分多边形的曲线的坐标点序列。
approximate_polygon
基于Douglas-Peucker算法的一种近似曲线模拟。它根据指定的容忍值来近似一条多边形曲线链,该曲线也在凸包线的内部。
from skimage import measure
measure.approximate_polygon(coords, tolerance)
#功能:逼近多边形曲线
#输入:coords坐标点序列
#输入:tolerance容忍值
#输出:近似的多边形曲线坐标序列
参考资料
1.python数字图像处理(18):高级形态学处理
2.python数字图像处理(19):骨架提取与分水岭算法
3.python数字图像处理(17):边缘与轮廓
4.opencv+python机读卡识别(二)边缘检测及分割
skimage函数学习相关推荐
- C++:Lambda函数学习
C++:Lambda函数学习 该文章转载自caimagic的博客:https://www.cnblogs.com/langzou/p/5962033.html 或许,Lambda 表达式算得上是 C+ ...
- excel高级函数_PowerQuery 进阶之 M 函数学习
草色新雨中, 松声晚窗里. 之前我们学习 Power Query 都是用鼠标就完成了很多复杂的操作.虽然 PowerQuery 已经将大部分常用功能内置成到功能区.基本能完成我们大部分的报表自动化功能 ...
- python学习笔记三一 函数学习
函数学习 range函数 •生成有序的序列 •生成数字队列可以定制 # range函数案例1 # 生成一个从1到10的数字序列 # range的生成序列的两个面数字是左包括,右不包括(如下所示只包括1 ...
- python小老鼠编程_成都python函数学习教程,Python编写课程
1.urllib2/urllib实现urllib2和urllib是Python中的两个内置模块,要实现HTTP功能,实现方式是以urllib2为主,urllib为辅.1.1首先实现一个完整的请求与响应 ...
- python e_pythone函数基础(8)内置函数学习
内置函数学习 # sorted # map # filter # max # sum # round # chr # ord # dir # bool # eval # exec # zip impo ...
- Javascript 随机数函数 学习之一:产生服从均匀分布随机数
大家都知道Math.random是 javascript 中返回伪随机数的函数,但查看 MDN, The Math.random() function returns a floating-point ...
- C#函数学习及常用的类
C#函数学习及常用的类 函数:能够独立完成某个功能的模块. 好处:1.结构更清析(编写.维护方便 ).2.代码重用.3.分工开发. 四要素:名称,输入(参数),输出(返回的类型),加工(函数体) 语法 ...
- sql自定义函数学习思路_学习SQL:用户定义的函数
sql自定义函数学习思路 You can create several user-defined objects in a database. One of these is definitely u ...
- SKlearn中的函数学习总结(持续更新)
关于SKlearn中的函数学习及关键代码部分,会持续更新 (参考sklearn官方文档) 一:分类.回归 二:降维 三:模型评估与选择 四:数据预处理 五:模型保存 大类 小类 适用问题 实现文档 说 ...
最新文章
- MobileNet Unet
- 查看mysql数据库大小、表大小和最后修改时间
- Tensorflow MNIST浅层神经网络的解释和答复
- 电脑能上网,手机连上wifi不能上网
- linux查看和修改PATH环境变量的方法
- 数据库原理与应用(SQL Server)笔记 第三章 连接查询
- mysql数据库常用操作
- c语言运行后没生成exe,这个程序怎么运行?为什么显示没有exe??
- 一文读懂HBase(安装,架构原理,优化,API,es二级索引,phoenix)
- 安装libgl1-mesa-dri:i386重启后黑屏问题解决
- 基于Python的南京二手房数据采集及可视化分析设计
- MTK logo.bin手动制作(个人博客:浏览器直接输入wugn.tech)
- Linux下服务的管理
- Python Selenium破解滑块验证码最新版!
- 论文笔记:Reasoning about Entailment with Neural Attention
- 初学量子力学,读读这本《见微知著》,会豁然开朗
- Java的JDK和JRE
- mysqldump命令备份数据 mysql备份数据
- 《那些年入上百万的人是如何做到的》读后感
- 已经两点求直线方程(多维空间)
热门文章
- runtime——Class——create
- 积分兑换商城系统怎么提高用户活跃度
- 使用筋斗云网络仿真平台进行灵活性区域配置仿真
- FPGA矩阵键盘的驱动设计与验证
- 【网络】统一资源定位符 URL (Uniform Resource Locator)
- 彻底理解CALayer的position与anchorPoint
- KDD2018《Adversarial Attacks on Neural Networks for Graph Data》 论文详解
- Convolutional Neural Network Pruning with Structural Redundancy Reduction 公式解读
- 服务器性能测试工具 Nmon的安装及使用
- 部署LAMP站点-edusoho