hanmin0822 / MisakaTranslator

御坂翻译器—Galgame/文字游戏/漫画多语种实时机翻工具
GNU General Public License v3.0
4.96k stars 435 forks source link

feat: new tesseract (up to latest 5.2.0 core) #267

Closed NewBugger closed 1 year ago

NewBugger commented 1 year ago

using https://www.nuget.org/packages/TesseractOCR

NewBugger commented 1 year ago

现有的 tesseract 4 总是崩溃闪退,不能使用。所以我找到一个更新过的库替换进来,这样就不需要 Tesseract5OCR.cs 调用外置 exe 主程序了

NewBugger commented 1 year ago

建议为 pr 打开 actions

imba-tjd commented 1 year ago

pr开了actions的,但是你的commit还没有合并过,就需要collaborator点允许运行才行。这是github强制设定的。

Sicos1977/TesseractOCR 依赖 microsoft.extensions.logging,这东西 .net framework 不自带,引入会增大体积。

我对于把Tesseract当作内置库来使用持反对态度。Tesseract的模型大小太大了,几十M。要我说,老的库用不了,就移除呗。我更信任外置exe。这样责任划分更明确。

看 @AndromedaMelody 是啥意见。是合并到master还是合并到develop还是不要。毕竟现在develop是移除了Tesseract4的。合并到master也行,反正我不用。

NewBugger commented 1 year ago

pr开了actions的,但是你的commit还没有合并过,就需要collaborator点允许运行才行。这是github强制设定的。

Sicos1977/TesseractOCR 依赖 microsoft.extensions.logging,这东西 .net framework 不自带,引入会增大体积。

我对于把Tesseract当作内置库来使用持反对态度。Tesseract的模型大小太大了,几十M。要我说,老的库用不了,就移除呗。我更信任外置exe。这样责任划分更明确。

看 @AndromedaMelody 是啥意见。是合并到master还是合并到develop还是不要。毕竟现在develop是移除了Tesseract4的。合并到master也行,反正我不用。

这么在意大小吗

NewBugger commented 1 year ago

Sicos1977/TesseractOCR 依赖 microsoft.extensions.logging,这东西 .net framework 不自带,引入会增大体积。

@imba-tjd 我刚看了下,现有分支 108M,我的自有分支(引入有多个外部库)占用 122M,我想这个存储大小应该不成问题吧,早已不是需要存储恐慌的时代了

AndromedaMelody commented 1 year ago

我的意见与 @imba-tjd 相同,合并到master也行。develop分支已经移除了一些内置的第三方设施,将体积压到了约10MB。

imba-tjd commented 1 year ago

你为啥给它加了async标记

emmm CI挂了

NewBugger commented 1 year ago

是挂的,因为有个 namespace 重名了,OCRLibrary/TesseractOCR.cs 和引入的依赖名字也是 TesseractOCR
你觉得重命名 OCRLibrary/TesseractOCR.cs 为其它名称,或者引入 using alias(在 OCRLibrary.csproj Misaka-WPF.csproj 中引入)哪个好

emmm CI挂了

NewBugger commented 1 year ago

啊这,怎么 actions 还是又需要允许

NewBugger commented 1 year ago

我的意见与 @imba-tjd 相同,合并到master也行。develop分支已经移除了一些内置的第三方设施,将体积压到了约10MB。

这是解压前大小吗,如果是解压后也太小了吧

可惜 develop 我编译不出来,不会,等新 actions 文件

imba-tjd commented 1 year ago

发生异常时不能返回string.Empty,上层用的是判断是否为null来判断是否发生了异常。当初原作者用的C++的习惯,用了返回值表示错误。积重难返没改了

NewBugger commented 1 year ago

发生异常时不能返回string.Empty,上层用的是判断是否为null来判断是否发生了异常。当初原作者用的C++的习惯,用了返回值表示错误。积重难返没改了

能不能把上层判断也改成 isNullOrEmpty