从mas计算部分图像的共现矩阵

2024-10-03 17:18:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的代码,我试图得到一个图像的一部分,对应于一个蒙版给我。那么我想申请略图.feature.glcm在那部分。但我得到了一个错误:

glcm = greycomatrix(mancha, [2], [0], levels=None, symmetric = True, normed = True)
File "D:\WinPython-64bit-2.7.13.1ZeroNew\python-2.7.13.amd64\lib\site-packages\skimage\feature\texture.py", line 101, in greycomatrix
assert_nD(image, 2)
File "D:\WinPython-64bit-2.7.13.1ZeroNew\python-2.7.13.amd64\lib\site-packages\skimage\_shared\utils.py", line 178, in assert_nD
raise ValueError(msg_incorrect_dim % (arg_name, '-or-'.join([str(n) for n in ndim])))
ValueError: The parameter `image` must be a 2-dimensional array

代码是:

^{pr2}$

我也尝试过:

labeled_image, nb_labels = ndimage.label(mascara)
blobs = ndimage.find_objects(labeled_image)

glcm = greycomatrix(cruda[blobs[0]]

有什么办法吗?在

谢谢!在


Tags: 代码inimagetruelibpackagessiteamd64
1条回答
网友
1楼 · 发布于 2024-10-03 17:18:00

不能直接将蒙版图像传递给greycomatrix。好消息是,您可以通过在代码中引入一些小的更改来计算从图像感兴趣区域提取的Haralick特征的近似值。在

基本思想是保存一个灰度,比如0,来标记那些不在感兴趣区域(ROI)内的图像像素。要使这种方法正常工作,您需要将ROI中原始强度为0的像素的强度更改为不同(但类似)的值,例如1。请注意,以这种方式修改图像不可避免地会在共现矩阵中引入不精确性,但只要图像足够大并且具有平滑的直方图,您就可以放心地假设所获得的特征是精确值的相当好的近似值。同样重要的是要注意,您必须去掉共现矩阵的0th行和0th列,以便不考虑用于标记非ROI像素的灰度。在

要实现上述解决方法,只需更改以下两行:

mancha = cruda[imaskc]
glcm = greycomatrix(mancha, [2], [0], levels=None, symmetric=True, normed=True)

收件人:

^{pr2}$

相关问题 更多 >