问题是您必须向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相关推荐

  1. python取整数_python 取整函数

    向下取整的运算称为Floor,用数学符号⌊⌋表示:向上取整的运算称为Ceiling,用数学符号⌈⌉表示.例如: ⌊59/60⌋=0 ⌈59/60⌉=1 ⌊-59/60⌋=-1 ⌈-59/60⌉=0 向 ...

  2. python的取整和取余_python取余运算符是什么?

    python取余运算符是什么? python取余运算符是%,即表示取模,返回除法的余数. 假设变量: a=10,b=20: 那么b % a 输出结果 0 Python语言支持以下类型的运算符: (1) ...

  3. python四舍五入取整_Python取整——向上取整、向下取整、四舍五入取整、向0取整...

    废话少叙,直接上code: 首先,不得不提醒大家一个容易被忽视或者搞混的问题--一般的,0.5这种末尾是5的小数,四舍五入取整应进位.这个进位的意思是:-0.5 → -1:0.5 → 1.即正负情况不 ...

  4. python的取整和取余_python取余取整

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 取余的公式:余数=除数-被除数*商python的的余数是按照整除(向下取整)得到 ...

  5. python数组取数_python 取数组

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 在python中计算一个多维数组的任意百分比分位数,只需用np.percenti ...

  6. python excel取列_python取excel表格第一列数据-python操作excel,使用xlrd模块,获取某一列数据的......

    怎样用python,读取excel中的一列数据 Python对Excel的读写主要有xlrd.copyxlwt.xlutils.openpyxl.xlsxwriter几种. 1.xlrd主要用来读百取 ...

  7. python怎么取小数_python取小数点

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 本篇主要介绍python的变量,标识符,转义字符,几个基本的数据类型字符串(包括 ...

  8. python websocet回调_python – 线程,非阻塞websocket客户端

    他们的 github page中有一个例子可以做到这一点.看起来你从那个例子开始并从on_open中每秒发送一次消息并在run_forever调用之后粘贴它,BTW一直运行直到套接字断开. 也许你在这 ...

  9. pythonsqrt取整函数_python取整函数

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! round(5.6)6运算取整时保留整数的下界,int则是剪去小数部分,只保留前 ...

  10. 用python画长方形_Python+opencv:绘制矩形,编写文本,PythonOpenCV,画,矩形框

    #用 OpenCV 标注 bounding box主要用到下面两个工具--cv2.rectangle() 和 cv2.putText().用法如下: # cv2.rectangle() # 输入参数分 ...

最新文章

  1. autoware使用相机和深度学习进行目标检测(六)
  2. Mac中MacPorts安装和使用
  3. 程序员的朋友圈应该是这样的。。。
  4. 编写一个函数进行左移或右移的位运算
  5. iOS: ios视频播放(MPMediaPlayerController,AVPlayer,AVPlayerViewcontroller、ffmpeg-AVPlayer)...
  6. EXTjs grid与json数据 转载
  7. 词云(WordCloud)参数详情
  8. 调用本地电脑摄像头并进行按P进行捕获照片并保存,按下Q退出
  9. 16 FI配置-财务会计-为准备激活销售会计核算的成本
  10. 数据 3 分钟 | Oracle 首度失去榜首位置、PingCAP 发布 TiDB 荣耀体验官活动、华为召开开发者大会 2021
  11. apipost提示error:invalid protocol的解决方案
  12. 在svn中发布多个工程
  13. Python 目录及文件操作(os.模块)
  14. java保存文件filedialog保存路径 文件名_FileDialog文件名过滤问题
  15. 银行转账java代码事务实现_Spring事务银行转账示例
  16. 《人类简史》二、认知革命——上帝之手的秘密
  17. 2005年计算机图书出版路在何方——出版崩溃了吗?
  18. Markdown初体验
  19. Team Foundation Power Tools 1.2发布
  20. CUDA thrust

热门文章

  1. SQL中IF和CASE语句
  2. 使用.NET Core搭建分布式音频效果处理服务(一)需求、问题和解决方案的几个坑...
  3. 搜寻Linux软件实用指南
  4. 结对编程-四则运算(挑战出题)
  5. [铁道部信息化管理]核心业务需求及逻辑架构分析
  6. RCP程序中集成其他插件的配置方法
  7. 【经验分享】卡方检验实战--检验次日留存率与用户分类的独立性
  8. Python使用scrapy框架编写自动爬虫爬取京东商品信息并写入数据库
  9. 分类损失函数多元分类_二元分类为什么不能用MSE做为损失函数?
  10. C#在winform中页面跳转实现