Python批量将图片中的字体做切片,图片比例1:1

作者 :
免费
  • 正文
  • Python做字体库相关教程,将图片批量切片成比例为1:1的,字体居中,适合批量导入字体库。

    思路图片中,标点符号相对于毛笔字显得非常小。我们可以考虑在裁剪之前,计算轮廓的宽度和高度,并基于这些尺寸来筛选轮廓。

    下面的代码将仅选择宽度和高度都大于特定阈值的轮廓:

    import cv2
    import numpy as np
    import os
    def slice_characters_from_image(img, min_width=40, min_height=40):
    alpha_channel=img[:, :, 3]
    _, binary=cv2.threshold(alpha_channel, 0, 255, cv2.THRESH_BINARY)
    kernel=np.ones((3,3),np.uint8)
    binary=cv2.morphologyEx(binary, cv2.MORPH_CLOSE, kernel, iterations=2)
    contours, _=cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    slices= []
    forcontourincontours:
    x, y, w, h=cv2.boundingRect(contour)
    ifw<min_widthorh<min_height:
    continue
    max_side=max(w, h)
    canvas=np.zeros((max_side, max_side, 4), dtype=np.uint8)
    x_offset= (max_side-w) //2
    y_offset= (max_side-h) //2
    canvas[y_offset:y_offset+h, x_offset:x_offset+w] =img[y:y+h, x:x+w]
    slices.append(canvas)
    returnslices
    input_folder = 'slices'
    output_folder = 'output_slices'
    if not os.path.exists(output_folder):
    os.makedirs(output_folder)
    for img_name in os.listdir(input_folder):
    ifimg_name.lower().endswith(('.png', '.jpg', '.jpeg')):
    img_path=os.path.join(input_folder, img_name)
    img=cv2.imread(img_path, cv2.IMREAD_UNCHANGED)
    slices=slice_characters_from_image(img)
    fori, slice_imginenumerate(slices):
    output_name=os.path.join(output_folder, f'slice_{os.path.splitext(img_name)[0]}_{i}.png')
    cv2.imwrite(output_name, slice_img)
    print("批量处理完成!")

    在这个方法中,我们使用min_widthmin_height参数来确定哪些轮廓会被选择。在这个例子中,我设置这两个值都为40。这意味着宽度或高度小于40的轮廓(可能是标点符号或其他小元素)将不会被考虑。

    阀值为min_width=40, min_height=40,测试图片为:

    Python批量将图片中的字体做切片,图片比例1:1-完美源码

    阀值为min_width=1, min_height=1,测试图片为:

    Python批量将图片中的字体做切片,图片比例1:1-完美源码

    导出为:

    Python批量将图片中的字体做切片,图片比例1:1-完美源码

    END
    如本资源侵犯了您的权益,请联系投诉邮箱admin@wmphp.com进行举报!我们将在收到邮件的1个小时内处理完毕。 本站仅为平台,发布的资源均为用户投稿或转载!所有资源仅供参考学习使用,请在下载后的24小时内删除,禁止商用! Wmphp.com(完美源码)助力正版,如您有自己的原创产品,可以联系客服投稿,代理出售! Wmphp.com(完美源码)客服QQ:136882447 Wmphp.com(完美源码)商务电话(仅对企业客户/个人用户):15120086569 (微信同步) 请注意:本站不提供任何免费的技术咨询服务,为了节约时间,下载前 请确认自己会技术
    完美源码 » Python批量将图片中的字体做切片,图片比例1:1
    3497+

    本站勉强运行

    3675+

    用户总数

    690+

    资源总数

    0+

    今日更新

    2024-4-8

    最后更新时间