备注(易拍全球)

切割前:   验证码识别之图像切割算法(二)    切割后:    验证码识别之图像切割算法(二)          验证码识别之图像切割算法(二)           验证码识别之图像切割算法(二)        验证码识别之图像切割算法(二)

 

切割前:验证码识别之图像切割算法(二)     切割后:      验证码识别之图像切割算法(二)       验证码识别之图像切割算法(二)     验证码识别之图像切割算法(二)  验证码识别之图像切割算法(二)

 

好了,上代码:

#-*-coding:utf-8-*-


from PIL import Image



def smartSliceImg(img, outDir, count=4, p_w=3):
    '''
    :param img:
    :param outDir:
    :param count: 图片中有多少个图片
    :param p_w: 对切割地方多少像素内进行判断
    :return:
    '''
    w, h = img.size
    pixdata = img.load()
    eachWidth = int(w / count)
    beforeX = 0
    for i in range(count):

        allBCount = []
        nextXOri = (i + 1) * eachWidth

        for x in range(nextXOri - p_w, nextXOri + p_w):
            if x >= w:
                x = w - 1
            if x < 0:
                x = 0
            b_count = 0
            for y in range(h):
                if pixdata[x, y] == 0:
                    b_count += 1
            allBCount.append({'x_pos': x, 'count': b_count})
        sort = sorted(allBCount, key=lambda e: e.get('count'))

        nextX = sort[0]['x_pos']
        box = (beforeX, 0, nextX, h)
        img.crop(box).save(outDir + str(i) + ".png")
        beforeX = nextX


img = Image.open('2.jpg')
outDir = 'cd/'
smartSliceImg(img, outDir, count=4, p_w=3)

 

相关文章:

  • 2021-05-24
  • 2021-11-09
  • 2021-12-07
  • 2021-05-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-17
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-31
  • 2022-12-23
  • 2021-07-31
  • 2021-11-27
相关资源
相似解决方案