【问题标题】:OCR Hand written data showing error in svm.train()OCR 手写数据在 svm.train() 中显示错误
【发布时间】:2017-01-05 01:58:36
【问题描述】:

我将 OpenCV3.1.0 与 Python2.7 一起使用。 我已经实现了来自here 的 OCR 手写数据代码。

responses = np.float32(np.repeat(np.arange(10),250)[:,np.newaxis])
svm.train(trainData,cv2.ml.ROW_SAMPLE, responses)

并得到这些错误

svm.train(trainData,cv2.ml.ROW_SAMPLE, 响应) cv2.error: C:\builds\master_PackSlaveAddon-win64-vc12-static\opencv\modules\ml\src\svm.cpp:1618: error: (-5) 在分类问题的情况下,响应必须是分类的;在创建 TrainData 时指定 varType,或在函数 cv::ml::SVMImpl::train 中传递整数响应

注意:自从在 opencv3.x 上工作以来,我在必要时使用了 cv2.ml.svm,其余部分相同

如果使用

responses = np.int32(np.repeat(np.arange(10),250)[:,np.newaxis])

获得 0 准确度

【问题讨论】:

    标签: python opencv svm ocr categorical-data


    【解决方案1】:

    尝试使用pytesseract。它比训练 SVM 分类器要好得多。如果您想查看它,请关注此link。还有一个高级示例,请查看此site

    【讨论】:

    • 这不是对所问问题的回答(如何获得 SVM 训练以进行分类工作)。这是对替代技术的建议,可以作为评论。你也没有说明为什么 pytesseract 会更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多