小编Joh*_*hny的帖子

Python中的滑动窗口进行GLCM计算

我正在尝试使用 GLCM 算法对卫星图像进行纹理分析。scikit-image 文档对此非常有帮助,但对于 GLCM 计算,我们需要在图像上循环的窗口大小。这在 Python 中太慢了。我在 stackoverflow 上找到了很多关于滑动窗口的帖子,但计算需要永远进行。我有一个如下所示的示例,它有效但需要很长时间。我想这一定是一种天真的做法

image = np.pad(image, int(win/2), mode='reflect') 
row, cols = image.shape
feature_map = np.zeros((M, N))

for m in xrange(0, row):
    for n in xrange(0, cols):
        window = image[m:m+win, n:n+win]
        glcm = greycomatrix(window, d, theta, levels)
        contrast = greycoprops(glcm, 'contrast')
        feature_map[m,n] = contrast 
Run Code Online (Sandbox Code Playgroud)

我遇到了skimage.util.view_as_windows一种方法,这对我来说可能是一个很好的解决方案。我的问题是,当我尝试计算 GLCM 时,出现错误:

ValueError:参数image必须是二维数组

这是因为 GLCM 图像的结果具有 4d 维度,而 scikit-imageview_as_windows方法仅接受 2d 数组。这是我的尝试

win_w=40
win_h=40

features = np.zeros(image.shape, dtype='uint8')
target = features[win_h//2:-win_h//2+1, win_w//2:-win_w//2+1]
windowed = …
Run Code Online (Sandbox Code Playgroud)

python image-processing scikit-image glcm

6
推荐指数
1
解决办法
4155
查看次数

如何使用Python在卫星图像上训练SVM分类器

我正在使用scikit-learn库在卫星图像上执行监督分类(支持向量机分类器).我的主要问题是如何训练我的SVM分类器.我在youtube上观看了很多视频,并阅读了一些关于如何训练SVM模型的教程scikit-learn.我看过的所有教程都使用了着名的Iris数据集.为了执行有监督的SVM分类,scikit-learn我们需要有标签.对于Iris数据集,我们有Iris.target我们试图预测的标签('setosa','versicolor','virginica').通过阅读scikit-learn文档,培训过程非常简单.

在我的情况下,我必须训练在城市区域捕获的SAR卫星图像,我需要对城市区域,道路,河流和植被进行分类(4级).这个图像有两个波段但我没有我想要预测的每个类的标签数据,例如Iris数据.

所以,我的问题是,我是否必须手动创建矢量数据(对于4个类)才能训练SVM模型?训练模型比手动创建矢量数据有更简单的方法吗?在这种情况下我们该怎么做?

说实话,我有点困惑.我将不胜感激任何帮助

python machine-learning svm k-means scikit-learn

2
推荐指数
1
解决办法
4197
查看次数