这个程序使用OpenCV识别场景中的文本。
输入图片:



程序运行后会在CMD里打印图片的识别结果:



代码:
cpp
#include <iostream>
#include <fstream>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
int main() {
Mat image = imread("/path/to/text_rec_test.png");
TextRecognitionModel model("path/to/crnn_cs.onnx");
model.setDecodeType("CTC-greedy");
std::ifstream vocFile;
vocFile.open("path/to/alphabet_94.txt");
String vocLine;
std::vector<String> vocabulary;
while (std::getline(vocFile, vocLine)) {
vocabulary.push_back(vocLine);
}
model.setVocabulary(vocabulary);
double scale = 1.0 / 127.5;
Scalar mean = Scalar(127.5, 127.5, 127.5);
Size inputSize = Size(100, 32);
model.setInputParams(scale, inputSize, mean);
std::string recognitionResult = recognizer.recognize(image);
std::cout << "'" << recognitionResult << "'" << std::endl;
}
crnn_cs.onnx下载地址:
https://drive.google.com/uc?export=dowload\&id=12diBsVJrS9ZEl6BNUiRp9s0xPALBS7kt
alphabet_94.txt下载地址:
https://drive.google.com/uc?export=dowload\&id=1oKXxXKusquimp7XY1mFvj9nwLzldVgBR