我正在做一个通过OCR比价格的动作

使用问题 · 1347 次浏览
我实在太饿了 创建于 2022-04-15 23:02

我在做一个通过OCR比价格的动作,我的思路是截取三张图片,通过OCR识别转化为文字,再用如果语句来判定,如果1<2and1<3则进行下一步,否则判定2、3的大小,但是刚开始如果语句还正常,我把所有动作都连起来之后,如果语句就不对了,大佬帮忙给看看,能提供好的思路更好了,谢谢大佬们,好人一生平安


我说下我的尝试,OCR的默认转换列表我尝试过了,文字我也试过,后来
我开始将文本转为数字,但是发现文本转数字全部变成了-1,至此我的动作制作陷入了绝境,明明成功过,但是现在不知道为啥不行,免费的OCR次数我用完依旧没解出来,自己注册了百度的,一直鼓捣到现在,实在搞不定了,我有大佬的qq,但是不好意思打扰,大佬们有空正好看到,也有时间的话,麻烦帮忙解决一下,谢谢啦

https://getquicker.net/Sharedaction?code=ca9da1dc-50ba-4497-8d24-08da1e38749d
这个是我的动作分享,这个问题解决完立马删,不会占用公共资源

我实在太饿了 最后更新于 2022/4/15

回复内容
CL 2022-04-16 09:01
#1

在动作上右键,调试运行,然后从调试文件里观察一下每个步骤的输入输出是不是符合预期。

参考:https://getquicker.net/kc/help/doc/debug 

CL 最后更新于 2022-04-16 09:02
我实在太饿了 回复 CL 2022-04-16 10:03 :

不好意思,我们太原这边疫情太重了,刚刚又去统一核酸,在您没回复这段时间我把精华贴以及使用贴都翻了,才了解到您这么牛,还能百忙之中处理我们这些个人使用问题,真的是麻烦您了

我屏幕截图可以实现,百度ocr现在免费的每月2000,我用营业执照开的,说是21年5月之前的是每日5万,后面的都改了,但是识别输出文本也没问题,我的问题在于无法比较大小,我的价格1文本输出是5.7,价格2是6.1,价格3是6.2,这个是没问题的,但是我昨天比较文本确实成功过,这就很迷,尝试文本转数字,转出来的也不是数字,都是-1这个也无法比较,昨天就调试了,就是这个如果语句的问题,麻烦您给看看

CL 回复 我实在太饿了 2022-04-16 10:05 :

看看是不是变量类型弄错了。 截图大点不然看不到上下文信息。

我实在太饿了 回复 CL 2022-04-16 13:48 :

因为我的蠢占用老大时间真的是不好意思,老大说的给了我启发,我找到原因了,ocr识别时候有点问题,时灵时不灵的,现在已经解决,还有个问题就是现在百度账号一个月的通用ocr只有2000次,您的账号每天也只有100次,我看到有很多ocr软件是免费的,咱这个能不能接入呢,我这边每天最少400多次,这个就比较烦了,希望老大给点好的建议


老大,这家伙10位数以下没问题,10位数以上,就理不清了,您给看看

我实在太饿了 回复 CL 2022-04-20 12:42 :

https://files.getquicker.net/_sitefiles/kb/2022/04/20/123133_553432_image.pnghttps://files.getquicker.net/_sitefiles/kb/2022/04/20/123133_553432_image.png


老大,这家伙10位数以下没问题,10位数以上就疯了,我重新写了一个测试的,确实是不行,麻烦老大给看看

湘喑 2022-04-16 11:29
#2

在OCR获取结果时,直接将结果返回给数值变量而不是文本变量,也就是赋值给价格1数字这样的,然后再比较大小,看看可以不。

如果不行,就先获取价格1文本,然后再用$=Convert.ToInt32({价格1文本})赋值给价格1数字,我看你用的是文本处理模块中的中文转数字,这个应该不行的。

或者你直接用表达式将文本转换为数值比较大小,$ = Convert.ToInt32({价格1文本}) < Convert.ToInt32({价格2文本})试试

我实在太饿了 回复 湘喑 2022-04-16 13:49 :

不好意思,我想问下这个代码在哪个窗口执行呢,我试了几个都是报错了

湘喑 回复 我实在太饿了 2022-04-16 14:04 :

$= Math.Max(Math.Max(Convert.ToDouble({价格1文本}),Convert.ToDouble({价格2文本})),Convert.ToDouble({价格3文本}))

这样直接返回3个文本型数值的最大值

我实在太饿了 回复 湘喑 2022-04-16 14:45 :

都识别出来的,但是会报错,在代码那个里输入数字没问题

湘喑 回复 我实在太饿了 2022-04-16 14:52 :

呃,是获取3个文本数字后,用一个赋值的模块,写入表达式,输出一个最小值到变量就可以啦

看你是要最小值还是最大值,最小值就是Math.Min,最大值就用Math.Max

我实在太饿了 回复 湘喑 2022-04-16 15:45 :

好嘞好嘞,谢谢您

湘喑 2022-04-16 11:32
#3

呃,应该是要用Convert.ToDouble合理些

回复主贴