Open broadcast98 opened 3 months ago
process->errorString
返回"Unknown error"
应该是因为stderr是空的。先检查PaddleOCR-json是否正常运行。
可以用QT的readAllStandardOutput和readAllStandardError这两个函数和readyReadStandardOutput、readyReadStandardError这两个信号来检查PaddleOCR-json的stdout和stderr输出。
然后建议用QProcess的arguments和nativeArguments两个函数来检查QT启动PaddleOCR-json的具体命令和参数,接着你可以在cmd里面复现一下这些命令看看引擎的具体输出。
接着我建议在启动PaddleOCR-json时加入--models_path这个参数来指定模型库位置(就是PaddleOCR-json.exe文件同目录下的models文件夹),这样可以防止找不到模型库引发的无法运行。
其实,你可以直接用C++调用PaddleOCR-json的API,比如说:
#include <string>
#include "PaddleOCR-json/include/task.h"
int main()
{
Task task = Task();
task.init_engine();
std::string json_output = task.run_ocr("{\"json\":\"input\"}");
return 0;
}
更多例子请看 https://github.com/hiroi-sora/PaddleOCR-json/blob/main/cpp/src/main.cpp https://github.com/hiroi-sora/PaddleOCR-json/blob/main/cpp/src/task.cpp
只不过这样一来你就需要把PaddleOCR-json给编译进你的项目里了,具体文档请看这里
process->errorString
返回"Unknown error"
应该是因为stderr是空的。先检查PaddleOCR-json是否正常运行。可以用QT的readAllStandardOutput和readAllStandardError这两个函数和readyReadStandardOutput、readyReadStandardError这两个信号来检查PaddleOCR-json的stdout和stderr输出。
然后建议用QProcess的arguments和nativeArguments两个函数来检查QT启动PaddleOCR-json的具体命令和参数,接着你可以在cmd里面复现一下这些命令看看引擎的具体输出。
接着我建议在启动PaddleOCR-json时加入--models_path这个参数来指定模型库位置(就是PaddleOCR-json.exe文件同目录下的models文件夹),这样可以防止找不到模型库引发的无法运行。
其实,你可以直接用C++调用PaddleOCR-json的API,比如说:
#include <string> #include "PaddleOCR-json/include/task.h" int main() { Task task = Task(); task.init_engine(); std::string json_output = task.run_ocr("{\"json\":\"input\"}"); return 0; }
更多例子请看 https://github.com/hiroi-sora/PaddleOCR-json/blob/main/cpp/src/main.cpp https://github.com/hiroi-sora/PaddleOCR-json/blob/main/cpp/src/task.cpp
只不过这样一来你就需要把PaddleOCR-json给编译进你的项目里了,具体文档请看这里
谢谢这么详细的指导。 我看了微信好像也是独立的ocr进程。 有空了再研究一下编译。
上面的代码 有什么问题么?在一台电脑上current_image_resultx 有返回数据。另一台电脑上current_image_resultx 没有返回数据。 调用 PaddleOCR-json.exe 需要什么环境变量么?
控制台输出如下: