相关疑难解决方法(0)

OpenCV-Python中的简单数字识别OCR

我正在尝试在OpenCV-Python(cv2)中实现"数字识别OCR".它仅用于学习目的.我想在OpenCV中学习KNearest和SVM功能.

我有每个数字的100个样本(即图像).我想和他们一起训练.

letter_recog.pyOpenCV示例附带了一个示例.但我仍然无法弄清楚如何使用它.我不明白什么是样本,响应等.另外,它首先加载一个txt文件,我首先不明白.

稍后搜索一下,我可以在cpp示例中找到一个letter_recognition.data.我使用它并在letter_recog.py模型中为cv2.KNearest创建了一个代码(仅用于测试):

import numpy as np
import cv2

fn = 'letter-recognition.data'
a = np.loadtxt(fn, np.float32, delimiter=',', converters={ 0 : lambda ch : ord(ch)-ord('A') })
samples, responses = a[:,1:], a[:,0]

model = cv2.KNearest()
retval = model.train(samples,responses)
retval, results, neigh_resp, dists = model.find_nearest(samples, k = 10)
print results.ravel()
Run Code Online (Sandbox Code Playgroud)

它给了我一个20000的数组,我不明白它是什么.

问题:

1)letter_recognition.data文件是什么?如何从我自己的数据集构建该文件?

2)什么results.reval()表示?

3)我们如何使用letter_recognition.data文件(KNearest或SVM)编写简单的数字识别工具?

python ocr opencv numpy computer-vision

370
推荐指数
3
解决办法
21万
查看次数

如何从图像中检测文本区域?

我想从图像中检测文本区域作为tesseract OCR引擎的预处理步骤,当输入只是文本时引擎运行良好,但当输入图像包含非文本内容时它会下降,所以我想只检测图像中的文本内容,任何如何做到这一点的想法会有所帮助,谢谢.

c++ tesseract text-extraction image-processing

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

分水岭分割opencv xcode

我现在正在学习opencv代码簿中的代码(OpenCV 2计算机视觉应用程序编程手册):第5章,使用分水岭分割图像,第131页.

这是我的主要代码:

#include "opencv2/opencv.hpp"
#include <string>

using namespace cv;
using namespace std;

class WatershedSegmenter {
    private:
    cv::Mat markers;
    public:
    void setMarkers(const cv::Mat& markerImage){
        markerImage.convertTo(markers, CV_32S);
    }

    cv::Mat process(const cv::Mat &image){
        cv::watershed(image,markers);
        return markers;
    }
};

int main ()
{
    cv::Mat image = cv::imread("/Users/yaozhongsong/Pictures/IMG_1648.JPG");

    // Eliminate noise and smaller objects
    cv::Mat fg;
    cv::erode(binary,fg,cv::Mat(),cv::Point(-1,-1),6);

    // Identify image pixels without objects
    cv::Mat bg;
    cv::dilate(binary,bg,cv::Mat(),cv::Point(-1,-1),6);
    cv::threshold(bg,bg,1,128,cv::THRESH_BINARY_INV);

    // Create markers image
    cv::Mat markers(binary.size(),CV_8U,cv::Scalar(0));
    markers= fg+bg;

    // Create watershed segmentation object
    WatershedSegmenter segmenter; …
Run Code Online (Sandbox Code Playgroud)

c++ xcode opencv image-processing watershed

4
推荐指数
1
解决办法
3万
查看次数

OCR 处理前的图像预处理

我目前的项目涉及将 pdf 中的文本转录为文本文件,我首先尝试将图像文件直接放入 OCR 程序(tesseract)中,但效果不佳。原始图像文件基本上是旧报纸,并且有一些背景噪音,我相信 tesseract 有问题。所以我试图在将它输入 tesseract 之前使用一些图像预处理。有没有适合这种情况的开源图像预处理引擎的建议???以及如何使用它的说明将更加感激!

ocr tesseract image-processing

3
推荐指数
1
解决办法
1万
查看次数