python - 图像的哪些特征会产生用于 SVM 多类图像分类的良好结果?

标签 python opencv image-processing machine-learning svm

我正在使用 opencv2.4 和 python 2.7。图像的哪些特征可以用于 svm 分类。我经历了 surf 和 sift 但作为初学者对我来说似乎很难。其他特征提取技术是什么?

最佳答案

如果您正在寻找最简单的表示,那么这会对您有所帮助。与其他 SIFT 和 SURF 相比,这两个非常简单

  1. 位图表示
  2. HOG-梯度直方图

SVM 是一种用于数据分类的机器学习模型。我构建了一个简单的 svm 分类器。如果你有两个图像文件夹,鸟类和松鼠。我遵循的步骤是

  1. 提取图像的 Hog 特征并将其附加到列表中

    for file in listing1:
     img = cv2.imread(path1 + file)
     res=cv2.resize(img,(250,250))
     h=hog(res)
     training_set.append(h)
    
  2. 同时附加标签

     training_labels.append(1)
    
  3. 将两个列表转换为 numpy 数组。

    trainData=np.float32(training_set)
    responses=np.float32(training_labels)
    
  4. 训练 SVM

    svm.train(trainData,responses, params=svm_params)
    
  5. 测试 SVM

    result = svm.predict_all(testData)
    print result
    

关于python - 图像的哪些特征会产生用于 SVM 多类图像分类的良好结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36214519/

相关文章:

python - 使用卷积窗口(python)隔离沿海网格

python - 有没有办法自动校正色彩平衡?

python - 如何在 Python 中将一系列浮点值合并到直方图中?

python - 与 pandas 绘图 : group and mean

c++ - OpenCV VideoCapture 支持的最大分辨率

ios - 在实时 iphone 摄像头中使用 OpenCV 检测物体的存在

algorithm - 整体图像边界处理

python - 照片上的透明蒙版,带有正方形坐标

python - django python - 关系不存在

c++ - 如何处理 C++ 中的 "DNN module was not built with CUDA backend; switching to CPU"警告?