三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

OpenCV C++基于knn模型的掩模字符识别(OCR)

OpenCV C++基于knn模型的掩模字符识别(OCR)

这个程序使用OpenCV text模块使用knn模型识别掩模mask里的字符。

原始图片:

把原始图片处理成mask:

把mask输入到程序里进行识别:

代码:

int main() { Mat mask = imread("scenetext_segmented_word01_mask.png", 0); threshold(mask, mask, 128., 255, THRESH_BINARY); string voc = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; Mat emissionProbabilities = Mat::eye((int)voc.size(), (int)voc.size(), CV_64FC1); Mat transitionProbabilities; FileStorage fs("./OCRHMM_transitions_table.xml",FileStorage::READ); fs["transition_probabilities"] >> transitionProbabilities; Ptr<OCRHMMDecoder> ocr=OCRHMMDecoder::create( loadOCRHMMClassifierNM("./OCRHMM_knn_model_data.xml.gz"), voc, transitionProbabilities, emissionProbabilities); string output; ocr->run(mask, output); cout <<output<< endl; }

OpenCV text模块里有提供OCRHMM_knn_model_data.xml.gz和OCRHMM_transitions_table.xml

← 返回列表