当前位置: 首页 > 知识库问答 >
问题:

如何在python中使用scikit image greycomatrix()函数?

向实
2023-03-14

我试图从图像中计算灰度共生矩阵,用于特征提取。我正在使用greycomatrix来完成任务,但我似乎不了解这个过程,因为我遇到了以下错误:

ValueError:缓冲区源数组是只读的

(完整的痕迹可以在下面找到)

将(PIL)图像转换为具有8个量化级别的灰度:

greyImg = img.convert('L', colors=8)

然后计算glcm矩阵:

glcm = greycomatrix(greyImg, distances=[1], angles=[0, np.pi/4, np.pi/2], 
                    symmetric=True, normed=True)

这导致了一个相当隐晦的错误:

glcm=灰色矩阵(img,距离=[1],角度=[0,np.pi/4,np.pi/2],级别=256,对称=真,规范=真)

_glcm_循环(图像、距离、角度、级别、P)

文件“skimage/feature/_texture.pyx”,第18行,在skimage中。特写_质地_glcm_环

文件"stringsource",第654行,在View. MemoryView.memoryview_cwrapper

文件“stringsource”,第349行,在视图中。记忆视图。记忆视图_cinit___;ValueError:缓冲区源数组为只读

我一直在试着对这些参数感到刺痛,但我似乎不明白为什么会发生这种情况。计算glcm矩阵的正确方法是什么?

问题在于灰度转换。需要进行以下更改:

import numpy as np

greyImg = np.array(img.convert('L', colors=8))

共有1个答案

欧阳德运
2023-03-14

函数greycomatrix需要的是NumPyndarray而不是PILImage对象。您需要像这样转换greyImg

import numpy as np

greyImg = np.asarray(img.convert('L', colors=8))
 类似资料:
  • 本文向大家介绍Python中zip函数如何使用,包括了Python中zip函数如何使用的使用技巧和注意事项,需要的朋友参考一下 介绍 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。 ps. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。 例子 zip函数接受任意多个(包括0个

  • 问题内容: 如何在python函数中设置全局变量? 问题答案: 要在函数内部使用变量,您需要像这样在函数内部进行操作。 给出输出 请记住,如果您要进行分配/更改它们,则只需要在函数内声明它们。打印和访问不需要。 你可以做, 而不像我们在第一个函数中那样声明它,它仍然可以正确赋值。 以a为例,您不能在不声明的情况下分配a ,但是可以调用它的方法并更改列表。如下所示。

  • 问题内容: 我在javascript中有一个名为“ checkdata(code)”的函数,如您所见,该函数接受一个名为“ code”的参数来运行并返回一个15个字符的字符串。 因此,我发现了(并测试了)如何在javascript中调用无参数函数,但是我的问题是,当我调用checkdata(code)时,总是得到“无”返回值。到目前为止,这是我正在做的事情: 但是,正如我之前说的,我一直都没有打印

  • 我使用下面的逻辑来计算python列表中的平均时间增量。 以下是该函数的输入:- 然而,我得到了下面的错误。 在prepare_llog(llog_pd)288 289 result_df[‘输入率’]=\-- ##############################################################################################

  • 假设我们在下面的数据框中有一个带有

  • 我目前正在阅读React官方网站,在那里我遇到了这个问题。React官方网站声明我们可以在JSX中使用函数代码。因此,我尝试了以下代码,但不起作用。 ABCD类扩展了React。组件{ } 我知道,我知道,你们中的一些人可能会说,看看React网站上给出的例子。我看到了,官网上的例子涉及到外部功能。我只是想知道我们能否独立使用JSX内部的函数。 有关更多信息,请参阅此链接:https://reac