0
点赞
收藏
分享

微信扫一扫

安装vcpkg+opencv+tesseract c++ 在VisualStudio中

花海书香 2022-04-18 阅读 141

vcpkg+opencv+tesseract安装以及配置

vcpkg安装

下载源码git clone https://github.com/microsoft/vcpkg.git
运行源码中的bootstrap-vcpkg.bat文件:
在这里插入图片描述
执行完成后同级目录下生成vcpkg.exe文件,需要将所在写在系统环境变量中

vcpkg所在的目录及其上级所有目录不要包含空格,中文字符等,否则将导致部分库安装失败,如因空格导致库安装失败则需更改vcpkg所在目录且vcpkg中的库需要重新安装,否则可能导致.dll文件无法找到等问题

安装opencv

执行vcpkg install opencv:x64-windows,
使用x86版本:vcpkg install opencv:x86-windows,
如不写则默认为x86:vcpkg install opencv

安装tesseract

执行vcpkg install tesseract:x64-windows,
x86:vcpkg install tesseract

应用所有库到任意VS项目中

vcpkg integrate install

在Visual Studio中使用

这里我使用的是Visual Studio 2022,集成完后,可以直接运行,对应的.dll文件会自动添加到输出程序的目录下
示例:


#include <stdio.h>
#include <iostream>
#include <opencv2/opencv.hpp>
#include <leptonica/allheaders.h>
#include <tesseract/baseapi.h>
#include <tesseract/publictypes.h>
#include <opencv2/imgproc.hpp>

int main()
{
	using namespace cv;
	using namespace tesseract;

	int g_nThresholdValue = 200;
	int g_nThresholdType = 3;
	Mat image = imread("C:\\Users\\Administrator\\Downloads\\ScreenShut.png", IMREAD_ANYCOLOR);
	Mat g_srcImage, g_grayImage, g_dstImage;
	char* outText;
	TessBaseAPI api;

	if (nullptr == image.data)
	{
		std::cout << "no image data" << std::endl;
		return -1;
	}
	else
	{
		Mat z1, z2;
		cvtColor(image, z1, COLOR_BGR2GRAY);
		adaptiveThreshold(z1, g_grayImage, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 5, 7);
		threshold(g_grayImage, g_dstImage, g_nThresholdValue, 255, g_nThresholdType);
		imshow("Image Source", image);
		//imshow("Image Gray", g_grayImage);
		//imshow("Image Output", g_dstImage);
	}

	// 语言选择
	if (api.Init(NULL, "chi_sim"))
	{
		std::cout << stderr << std::endl;
		exit(1);
	}

	api.SetImage((uchar*)g_grayImage.data, g_grayImage.cols, g_grayImage.rows, 1, g_grayImage.cols);
	outText = api.GetUTF8Text();

	if (outText == nullptr)
	{
		std::cout << "没有数据" << std::endl;
	}
	else
	{
		std::cout << "识别结果: " << outText << std::endl;
	}
	
	api.End();
	delete[] outText;

	waitKey();
}

运行之前需要先做以下配置,否则将出现错误信息: 需要在这里下载,建议将所有.traineddata下载下来,因为在api.Init(NULL, "chi_sim")这一步,实际就是选择中文语言的chi_sim.traineddata训练文件,因此将所有文件下载下来并放到项目输出目录下并新建文件夹命名为tessdata即可

报错信息:
在这里插入图片描述

解决方案,最后文件夹结构:
在这里插入图片描述
在这里插入图片描述
运行结果:
在这里插入图片描述

至此,搞定!

举报

相关推荐

0 条评论