小编Sre*_*non的帖子

从图像的GLCM计算熵

我正在使用skimage库进行大多数图像分析工作.

我有一个RGB图像,我打算提取texture喜欢的功能entropy,energy,homogeneitycontrast从图像.

以下是我正在执行的步骤:

from skimage import io, color, feature
from skimage.filters import rank
rgbImg = io.imread(imgFlNm)
grayImg = color.rgb2gray(rgbImg)
print(grayImg.shape)  # (667,1000), a 2 dimensional grayscale image

glcm = feature.greycomatrix(grayImg, [1], [0, np.pi/4, np.pi/2, 3*np.pi/4])
print(glcm.shape) # (256, 256, 1, 4)

rank.entropy(glcm, disk(5)) # throws an error since entropy expects a 2-D array in its arguments

rank.entropy(grayImg, disk(5)) # given an output.
Run Code Online (Sandbox Code Playgroud)

我的问题是,从灰度图像(直接)计算的熵是否与从GLCM(纹理特征)中提取的熵特征相同?

如果没有,从图像中提取所有纹理特征的正确方法是什么?

注:我已经提到过:

熵 - 滑雪 …

python numpy entropy scikit-image glcm

10
推荐指数
1
解决办法
9209
查看次数

为IPython Notebook设置默认的sys.path

我将所有.py文件放在文件夹脚本中,将所有IPython笔记本放在名为Notebook的文件夹下.

脚本上的一个或多个文件上的每个笔记本文件都有多个交叉依赖项.

sys.path.append在每个笔记本的顶部看起来繁琐,我希望有加,就像我们添加一个默认查找路径的方式PYTHONPATH.bash_profile.

现在我做以下事情:

import sys
sys.path.append("<path where DeriveFinalResultSet.py exists>)
import DeriveFinalResultSet as drs
Run Code Online (Sandbox Code Playgroud)

我希望有一个设置,我可以在下面做:

import DeriveFinalResultSet as drs
Run Code Online (Sandbox Code Playgroud)

python sys.path jupyter-notebook

8
推荐指数
1
解决办法
7181
查看次数

sklearn.metrics.precision_recall_curve:为什么精度和召回率返回数组而不是单个值

我正在计算我最近准备的数据集上现成算法的精度和召回率。

这是一个二元分类问题,我希望计算我构建的每个分类器的精度、召回率和 f 分数。

test_x, test_y, predics, pred_prob,score = CH.buildBinClassifier(data,allAttribs,0.3,50,'logistic')
Run Code Online (Sandbox Code Playgroud)

构建分类器方法基本上构建一个分类器,拟合训练数据并返回 test_x(测试数据的特征)、test_y(真实标签)、predict(分类器做出的预测)、red_prob(LogisiticRegression.predict_proba方法的预测概率) .

下面是计算精度召回的代码:

from sklearn.metrics import precision_recall_curve

pr, re, _ = precision_recall_curve(test_y,pred_prob,pos_label=1)
pr
(array([ 0.49852507,  0.49704142,  0.49554896,  0.49702381,  0.49850746,
         0.5       ,  0.5015015 ,  0.50301205,  0.50453172,  0.50606061,
         . . . . . . . 
         0.875     ,  1.        ,  1.        ,  1.        ,  1.        ,
         1.        ,  1.        ,  1.        ,  1.        ])
re
array([ 1.        ,  0.99408284,  0.98816568,  0.98816568,  0.98816568,
         0.98816568,  0.98816568,  0.98816568,  0.98816568,  0.98816568,
         . . . …
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn precision-recall

5
推荐指数
1
解决办法
7866
查看次数