我正在使用skimage库进行大多数图像分析工作.
我有一个RGB图像,我打算提取texture喜欢的功能entropy,energy,homogeneity并contrast从图像.
以下是我正在执行的步骤:
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(纹理特征)中提取的熵特征相同?
如果没有,从图像中提取所有纹理特征的正确方法是什么?
注:我已经提到过:
我将所有.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) 我正在计算我最近准备的数据集上现成算法的精度和召回率。
这是一个二元分类问题,我希望计算我构建的每个分类器的精度、召回率和 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)