python取非_Python:取非矩形区域的GLCM
问题是您必须向greycomatrix传递一个整数数组,但是np.nan的类型是float(有关详细信息,请查看this thread)。因此,您不能将ROI之外的像素编码为NaN。在
处理非矩形ROI的一个近似解决方法是将ROI之外的像素设置为0,并使用mahotas库中的函数haralick。此函数返回从四个不同的GLCM中提取的13个Haralick特征,对应于四个二维方向和距离参数的特定值。在
根据文件:ignore_zeros can be used to have the function ignore any zero-valued
pixels (as background).
总之,您需要遮罩那些不在ROI范围内的像素,并在对haralick的调用中将ignore_zeros设置为True。在
演示
首先,让我们生成一些模拟数据:In [213]: import numpy as np
In [214]: shape = (3, 4)
In [215]: levels = 8
In [216]: np.random.seed(2017)
In [217]: x = np.random.randint(0, levels, size=shape)
In [218]: x
Out[218]:
array([[3, 1, 6, 5],
[2, 0, 2, 2],
[3, 7, 7, 7]])
然后我们必须从图像中去除所有的零,因为在这种方法中,零强度级别是为ROI之外的像素保留的。值得指出的是,将强度0和{}合并为一个强度1会导致结果不准确。在
^{pr2}$
下一步是为ROI之外的像素定义一个掩码(在这个玩具示例中,是图像的四个角),并将这些像素设置为0。在In [221]: non_roi = np.zeros(shape=shape, dtype=np.bool)
In [222]: non_roi[np.ix_([0, -1], [0, -1])] = True
In [223]: non_roi
Out[223]:
array([[ True, False, False, True],
[False, False, False, False],
[ True, False, False, True]], dtype=bool)
In [224]: x[non_roi] = 0
In [225]: x
Out[225]:
array([[0, 1, 6, 0],
[2, 1, 2, 2],
[0, 7, 7, 0]])
我们现在可以从非矩形ROI的GLCM中执行特征提取:In [226]: import mahotas.features.texture as mht
In [227]: features = mht.haralick(x, ignore_zeros=True)
In [228]: features.size
Out[228]: 52
In [229]: features.ravel()
Out[229]: array([ 0.18 , 5.4 , 0.5254833 , ..., 0.81127812,
-0.68810414, 0.96300727])
检查共现矩阵的外观可能很有用。例如,“右侧像素”GLCM将是:In [230]: mht.cooccurence(x, 0)
Out[230]:
array([[0, 1, 0, ..., 0, 1, 2],
[1, 0, 2, ..., 0, 1, 0],
[0, 2, 2, ..., 0, 0, 0],
...,
[0, 0, 0, ..., 0, 0, 0],
[1, 1, 0, ..., 0, 0, 0],
[2, 0, 0, ..., 0, 0, 2]])
python取非_Python:取非矩形区域的GLCM相关推荐
- python取整数_python 取整函数
向下取整的运算称为Floor,用数学符号⌊⌋表示:向上取整的运算称为Ceiling,用数学符号⌈⌉表示.例如: ⌊59/60⌋=0 ⌈59/60⌉=1 ⌊-59/60⌋=-1 ⌈-59/60⌉=0 向 ...
- python的取整和取余_python取余运算符是什么?
python取余运算符是什么? python取余运算符是%,即表示取模,返回除法的余数. 假设变量: a=10,b=20: 那么b % a 输出结果 0 Python语言支持以下类型的运算符: (1) ...
- python四舍五入取整_Python取整——向上取整、向下取整、四舍五入取整、向0取整...
废话少叙,直接上code: 首先,不得不提醒大家一个容易被忽视或者搞混的问题--一般的,0.5这种末尾是5的小数,四舍五入取整应进位.这个进位的意思是:-0.5 → -1:0.5 → 1.即正负情况不 ...
- python的取整和取余_python取余取整
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 取余的公式:余数=除数-被除数*商python的的余数是按照整除(向下取整)得到 ...
- python数组取数_python 取数组
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 在python中计算一个多维数组的任意百分比分位数,只需用np.percenti ...
- python excel取列_python取excel表格第一列数据-python操作excel,使用xlrd模块,获取某一列数据的......
怎样用python,读取excel中的一列数据 Python对Excel的读写主要有xlrd.copyxlwt.xlutils.openpyxl.xlsxwriter几种. 1.xlrd主要用来读百取 ...
- python怎么取小数_python取小数点
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 本篇主要介绍python的变量,标识符,转义字符,几个基本的数据类型字符串(包括 ...
- python websocet回调_python – 线程,非阻塞websocket客户端
他们的 github page中有一个例子可以做到这一点.看起来你从那个例子开始并从on_open中每秒发送一次消息并在run_forever调用之后粘贴它,BTW一直运行直到套接字断开. 也许你在这 ...
- pythonsqrt取整函数_python取整函数
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! round(5.6)6运算取整时保留整数的下界,int则是剪去小数部分,只保留前 ...
- 用python画长方形_Python+opencv:绘制矩形,编写文本,PythonOpenCV,画,矩形框
#用 OpenCV 标注 bounding box主要用到下面两个工具--cv2.rectangle() 和 cv2.putText().用法如下: # cv2.rectangle() # 输入参数分 ...
最新文章
- 如何在JAVA代码中执行 exec master..xp_cmdshell @cmd // 当作SQL语句调用就成了 或者调用 Runtime.getRuntime().exec
- SAP SD基础知识之输出控制(Output Control)
- IE二级链接无法打开
- Javascript(6)
- 一次 Young GC 的优化实践
- vue子父组件间传值
- jQuery实现一个图片左右滚动
- 让Apache日志不记录图片等指定扩展名文件的设置方法
- 行政区域村级划分数据库_最新行政区划省市区街道乡镇数据库 每月更新版
- 物联网背景的智慧农业 能否搭上顺风车
- 嵌入式开发有必要学习python吗?
- 面试官问:为什么 Java 线程没有Running状态?我懵了
- web端接收读卡器卡片信息
- H5+微信公众号扫二维码页面跳转功能 vue实现
- 支持本地挂载的网盘文件列表工具AList
- BigDecimel转人民币大写
- WebGL,Cesium以及GeoJSON数据的简单介绍
- Java中如果被除数是零时的异常处理
- 亚马逊、eBay、速卖通、lazada、Shopee等跨境平台,如何快速打造爆款
- 数据库MySQL的使用,带GUI界面
热门文章
- struts2 空文件上传解决
- springboot-20-全局异常处理
- 《NX-OS与Cisco Nexus交换技术:下一代数据中心架构(第2版)》一2.9 本章小结...
- 配置追踪者—Scylla v1(***测试工具)
- PIL 图片压缩处理
- 「轻阅读」如何设计全链路99.99%高可用架构?
- linux7.2 网卡设置,CentOS 7.2网络配置
- ELK logstash grok匹配失败存另外的es表
- phpqrcode 生成二维码
- tomcat端口被占用的解决方式