Ver código fonte

tesseract5.0的静态库调好了,但是xp下会崩溃,没法用,还是改回旧版本

张洋 6 anos atrás
pai
commit
5cbac3bf72
25 arquivos alterados com 46 adições e 42 exclusões
  1. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/liblept171.dll
  2. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/libtesseract304.dll
  3. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.danbloomberg.leptonica-1.76.0.dll
  4. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.jpeg-9.2.0.dll
  5. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.madler.zlib-1.2.11.dll
  6. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.openjpeg.openjp2-2.3.0.dll
  7. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.png-1.6.35.dll
  8. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.tiff-4.0.9.dll
  9. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.webp-0.6.1.dll
  10. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.xz_utils.lzma-5.2.4.dll
  11. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/tesseract50.dll
  12. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/zhipuzi_pay_plugin.exe
  13. BIN
      bin/Win32/Debug/zhipuzi_pay_plugin/zpzDll.dll
  14. BIN
      dll/debug/pvt.cppan.demo.danbloomberg.leptonica-1.76.0.dll
  15. BIN
      dll/debug/pvt.cppan.demo.jpeg-9.2.0.dll
  16. BIN
      dll/debug/pvt.cppan.demo.madler.zlib-1.2.11.dll
  17. BIN
      dll/debug/pvt.cppan.demo.openjpeg.openjp2-2.3.0.dll
  18. BIN
      dll/debug/pvt.cppan.demo.png-1.6.35.dll
  19. BIN
      dll/debug/pvt.cppan.demo.tiff-4.0.9.dll
  20. BIN
      dll/debug/pvt.cppan.demo.webp-0.6.1.dll
  21. BIN
      dll/debug/pvt.cppan.demo.xz_utils.lzma-5.2.4.dll
  22. BIN
      dll/debug/tesseract50.dll
  23. BIN
      lib/debug/tesseract50.lib
  24. 45 41
      zhipuzi_pay_plugin/helper/CBitmapHelper.cpp
  25. 1 1
      zhipuzi_pay_plugin/wnd/CValueWnd.cpp

BIN
bin/Win32/Debug/zhipuzi_pay_plugin/liblept171.dll


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/libtesseract304.dll


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.danbloomberg.leptonica-1.76.0.dll


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.jpeg-9.2.0.dll


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.madler.zlib-1.2.11.dll


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.openjpeg.openjp2-2.3.0.dll


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.png-1.6.35.dll


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.tiff-4.0.9.dll


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.webp-0.6.1.dll


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/pvt.cppan.demo.xz_utils.lzma-5.2.4.dll


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/tesseract50.dll


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/zhipuzi_pay_plugin.exe


BIN
bin/Win32/Debug/zhipuzi_pay_plugin/zpzDll.dll


BIN
dll/debug/pvt.cppan.demo.danbloomberg.leptonica-1.76.0.dll


BIN
dll/debug/pvt.cppan.demo.jpeg-9.2.0.dll


BIN
dll/debug/pvt.cppan.demo.madler.zlib-1.2.11.dll


BIN
dll/debug/pvt.cppan.demo.openjpeg.openjp2-2.3.0.dll


BIN
dll/debug/pvt.cppan.demo.png-1.6.35.dll


BIN
dll/debug/pvt.cppan.demo.tiff-4.0.9.dll


BIN
dll/debug/pvt.cppan.demo.webp-0.6.1.dll


BIN
dll/debug/pvt.cppan.demo.xz_utils.lzma-5.2.4.dll


BIN
dll/debug/tesseract50.dll


BIN
lib/debug/tesseract50.lib


+ 45 - 41
zhipuzi_pay_plugin/helper/CBitmapHelper.cpp

@@ -275,54 +275,58 @@ bool CBitmapHelper::OcrRect(tesseract::TessBaseAPI& tess, LPRECT lpRect, std::st
     //正向的内存图象数据
     GetBitmapBits(hBitmap, bi.biSizeImage, lpmem);
 
+	SaveBitmapToFile(hBitmap, L"C:\\aaa.bmp");
+
     //清除
-    DeleteDC(hScrDC);
-    DeleteDC(hMemDC);
+    //DeleteDC(hScrDC);
+    //DeleteDC(hMemDC);
 
     //开始测试ocr
-    tess.SetImage((const unsigned char*)lpmem, bm.bmWidth, bm.bmHeight, 4, bm.bmWidthBytes);
+    //tess.SetImage((const unsigned char*)lpmem, bm.bmWidth, bm.bmHeight, 4, bm.bmWidthBytes);
+	Pix *image = pixRead("C:\\aaa.bmp");
+	tess.SetImage(image);
     tess.Recognize(0);
 
     const char* utf8_ret = tess.GetUTF8Text();
 
-	char szRes[10] = { 0 };
-	int j = 0;
-
-	for (int i = 0; i < 255; i++)
-	{
-		if ((utf8_ret[i] >= '0' && utf8_ret[i] <= '9') || utf8_ret[i] == '.')
-		{
-			//是有效的数字,就保存下来
-			szRes[j] = utf8_ret[i];
-			j++;
-
-			if (j == 9)
-			{
-				//已经装了9个了
-				result = szRes;
-
-				break;
-			}
-		}
-		else if (utf8_ret[i] == 32)
-		{
-			//如果是空格,直接忽略
-		}
-		else if (utf8_ret[i] == '\n')
-		{
-			//换行键,到了末尾了
-			result = szRes;
-
-			break;
-		}
-		else
-		{
-			//既不是有效数字,也不是空格和换行,那么就是出现了非法字符
-			result = "0.00";
-
-			break;
-		}
-	}
+	//char szRes[10] = { 0 };
+	//int j = 0;
+
+	//for (int i = 0; i < 255; i++)
+	//{
+	//	if ((utf8_ret[i] >= '0' && utf8_ret[i] <= '9') || utf8_ret[i] == '.')
+	//	{
+	//		//是有效的数字,就保存下来
+	//		szRes[j] = utf8_ret[i];
+	//		j++;
+
+	//		if (j == 9)
+	//		{
+	//			//已经装了9个了
+	//			result = szRes;
+
+	//			break;
+	//		}
+	//	}
+	//	else if (utf8_ret[i] == 32)
+	//	{
+	//		//如果是空格,直接忽略
+	//	}
+	//	else if (utf8_ret[i] == '\n')
+	//	{
+	//		//换行键,到了末尾了
+	//		result = szRes;
+
+	//		break;
+	//	}
+	//	else
+	//	{
+	//		//既不是有效数字,也不是空格和换行,那么就是出现了非法字符
+	//		result = "0.00";
+
+	//		break;
+	//	}
+	//}
 
     delete[] lpmem;
     tess.Clear();

+ 1 - 1
zhipuzi_pay_plugin/wnd/CValueWnd.cpp

@@ -59,7 +59,7 @@ void CValueWnd::Init()
 		MessageBox(m_hWnd, L"ocr语言库加载失败", L"111", MB_OK);
 	}
 
-	m_tess.SetPageSegMode(tesseract::PageSegMode::PSM_SINGLE_LINE);
+	m_tess.SetPageSegMode(tesseract::PageSegMode::PSM_SINGLE_BLOCK);
 	m_tess.SetVariable("save_best_choices", "T");
 
     //再安装钩子