Пример #1
0
def main(img):
    """
    主程序
    """
    # 二值化: 基于迭代法获取二值化阈值
    print("Processing: 二值化...")
    k, img_bin = binaryzation(img)
    print("阈值:", k)
    cv2.imwrite("bin.png", img_bin)

    # 基于腐蚀和开运算的骨架提取
    print("Processing: 基于腐蚀和开运算的骨架提取...")
    img_sk_morph = sk_morph(img_bin)
    cv2.imwrite("morph.png", img_sk_morph)

    # 基于单纯细化的骨架提取
    print("Processing: 基于单纯细化的骨架提取...")
    img_sk_thin = sk_thin(img_bin)
    cv2.imwrite("morph_thin.png", img_sk_thin)

    # 基于距离变换的骨架提取
    print("Processing: 基于距离变换的骨架提取...")
    img_sk_dist = sk_distTrans(img_bin)
    cv2.imwrite("dist.png", img_sk_dist)

    # 裁剪:以细化所得骨架为例
    print("Processing: 裁剪:以细化所得骨架为例...")
    img_result = tailor(img_sk_thin)
    cv2.imwrite("tailor.png", img_result)
Пример #2
0
def read(img):
    result = ""
    img = binaryzation(img)
    #img.show()
    imgArray = split(img)
    if not imgArray:
        return "文本粘连,分割失败"
    for singImg in imgArray:
        result += compleModel(singImg)
    return result
Пример #3
0
    for i in range(h-1,-1,-1):
        for j in range(w-1,-1,-1):
            temp0=distance[i+2][j+2]+4
            temp1=min(temp0,distance[i+2][j+1]+3)
            temp2=min(temp1,distance[i+1][j+2]+3)
            temp3=min(temp2,distance[i+2][j]+4)
            distance[i+1][j+1]=min(temp3,distance[i+1][j+1])

    return distance




if __name__=='__main__':

    start=time.clock()

    img=cv2.imread('in\\fingerPrint.jpg',0)
    img=binaryzation.binaryzation(img,100)
    plt.subplot(1,2,1)
    plt.imshow(img,'gray')

    skeleton=dis_ske(img)
    plt.subplot(1,2,2)
    plt.imshow(skeleton, 'gray')
    plt.show()

    end=time.clock()

    print(end-start)