你不会还在每个应用都安装ddddocr吧?那你就out辣🌶
评论
收藏

你不会还在每个应用都安装ddddocr吧?那你就out辣🌶

经验分享
花括号
2025-07-07 22:10·浏览量:2819
花括号
影刀专家
发布于 2025-07-07 13:38更新于 2025-07-07 22:102819浏览

近期社区问答安装ddddocr的问题比较多,我这里试着安装一下,python3.7和python3.10版本的都一遍安装成功,展示一下两个版本所需安装的依赖库。

python3.7和python3.10安装的ddddocr都是1.5.6版本,但是相关的部分依赖库版本不同,可以根据上面的版本提示,在影刀里安装指定的版本。

每个应用都会有自己的独立虚拟目录,如下图所示:

虚拟目录路径说明:

  1. 电脑用户名;
  2. 影刀账号Uuid;花括号个人中心链接 https://www.yingdao.com/community/userCenter?userUuid=645792049288503298 最后即为Uuid;
  3. 应用id;
  4. 虚拟环境目录,python3.7版本文件夹名为venv,python3.10版本文件夹名为venv310。

安装包路径:

第三方包都安装在venv文件夹下的\Lib\site-packages目录下。


来都来了,我们检验下 ddddocr 的识别效果如何。


一、生成验证码

现在开发者真幸福,随便一个AI工具,都能帮你输出生成验证码的python代码。

咱们生成一个由字母和数字组成的6位随机验证码,保存至captcha.png,并将验证码返回,用来核对识别的正确性。

代码保存至python模块generate_cap.py

import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
from PIL import Image, ImageDraw, ImageFont
import random
import string

def generate_captcha():
    # 定义验证码的长度
    length = 6

    # 生成随机的英文字母和数字组合
    captcha_text = ''.join(random.choices(string.ascii_letters + string.digits, k=length))

    # 创建一个空白图片
    width, height = 120, 40
    image = Image.new('RGB', (width, height), (255, 255, 255))  # 白色背景
    draw = ImageDraw.Draw(image)

    # 设置字体(需要指定字体文件路径,这里以微软雅黑为例)
    font_path = r'C:\Windows\Fonts\msyh.ttc'  # 修改为你的字体文件路径
    font = ImageFont.truetype(font_path, 28)

    # 在图片上绘制验证码文本
    text_width, text_height = draw.textsize(captcha_text, font=font)
    x = (width - text_width) // 2
    y = (height - text_height) // 2
    draw.text((x, y), captcha_text, font=font, fill=(0, 0, 0))  # 黑色文本

    # 添加干扰点
    for _ in range(50):
        x = random.randint(0, width)
        y = random.randint(0, height)
        draw.point((x, y), fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))

    # 添加干扰线
    for _ in range(5):
        start = (random.randint(0, width), random.randint(0, height))
        end = (random.randint(0, width), random.randint(0, height))
        draw.line([start, end], fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)), width=2)

    # 保存图片
    # image.save(r'C:\Users\ricky\Desktop\影刀\captcha.png')
    image.save('captcha.png')

    return captcha_text


def main(args):
    # 生成验证码并保存图片
    captcha = generate_captcha()
    print(f'生成的验证码是:{captcha}')
    return captcha

代码都有注释,没有太多的可说点,图片保存的路径可以说一说。

如果路径不写绝对路径,而是直接写 image.save('captcha.png') ,文件不是保存在和py文件一个文件夹,而是在影刀的安装目录下。

请先记住这个目录,后面还会有大用处。

二、识别验证码

ddddocr 功能非常强大,点击链接可以查看详细内容。

我们这里只用识别数英混合图片验证码的代码,返回识别的字符串。

代码保存至python模块dddd_ocr.py

import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
import ddddocr

def recognize_captcha(image_path):
    # 初始化 ddddocr
    ocr = ddddocr.DdddOcr()

    # 读取图片
    with open(image_path, 'rb') as f:
        image_bytes = f.read()

    # 识别验证码
    result = ocr.classification(image_bytes)
    return result


def main(args):
    # 识别验证码
    recognized_captcha = recognize_captcha('captcha.png')
    print(f'识别的验证码是:{recognized_captcha}')
    return recognized_captcha


三、验证准确率

for次数循环100次,每次识别正确则count+1,计算100次的成功率。

成功率75%,主要是数字0和字母O、数字1和字母l识别有误。

作为一款免费产品,还要啥自行车。🚲


相信大家的应用经常都会用到验证码识别,难道我们每次使用ddddocr识别,都需要在虚拟环境目录下安装吗,能否安装一次所有的应用都能用呢?

🎉✨🎉答案是可以的。

我们先回头看看第一张第三方包安装截图。

为什么其他包都安装在应用的虚拟目录下,唯独Pillow包安装在影刀的安装目录下呢?

这是因为影刀指令需要用到的第三方包,就直接安装在影刀的安装目录下,而这里的包,是无需在虚拟环境目录下再安装就可以直接使用的。

那么我们将所用到的包直接安装在这里,不就可以和影刀的默认安装包一样,一劳永逸了。


下面是安装的方法展示:

1.打开cmd命令提示符,粘贴命令‘"D:\Program Files (x86)\ShadowBot\shadowbot-5.28.38\python\python.exe" -m pip install ddddocr’,

如果是python3.10版本的应用,则粘贴命令‘"D:\Program Files (x86)\ShadowBot\shadowbot-5.28.38\python310\python.exe" -m pip install ddddocr’

路径更改为各自的影刀安装目录,替换需要安装的包名。

2.第一次安装,可能会遇到需要升级pip的警告。

使用命令‘"D:\Program Files (x86)\ShadowBot\shadowbot-5.28.38\python\python.exe" -m pip install --upgrade pip’更新pip。


3.安装成功后,可以在影刀安装目录看到ddddocr文件包。如果应用是python3.10版本,则下面的路径中的python为python310.

4.新建一个PC应用,虚拟环境目录不用安装ddddocr,正常运行代码。

像pandas这种比较常用、安装时间较长、占用空间较大的第三方包,就可以通过这种方式来安装。

起到安装一次,全部应用可以共用的效果。


🧨🧨🧨还等什么,赶紧来试试吧!

收藏37
全部评论1
最新
发布评论
评论