opencv-python 去除图片文字

opencv-python 去除图片文字

思路: 原图增强后提取增强后图片的轮廓进行闭运算,闭运算后的图像当掩码来修复原图即可去除文字
图像增强代码链接

import numpy as np
import cv2


def replaceZeroes(data):
    min_nonzero = min(data[np.nonzero(data)])
    data[data == 0] = min_nonzero
    return data


def SSR(src_img, size):
    L_blur = cv2.GaussianBlur(src_img, (size, size), 0)
    img = replaceZeroes(src_img)
    L_blur = replaceZeroes(L_blur)

    dst_Img = cv2.log(img / 255.0)
    dst_Lblur = cv2.log(L_blur / 255.0)
    dst_IxL = cv2.multiply(dst_Img, dst_Lblur)
    log_R = cv2.subtract(dst_Img, dst_IxL)

    dst_R = cv2.normalize(log_R, None, 0, 255, cv2.NORM_MINMAX)
    log_uint8 = cv2.convertScaleAbs(dst_R)
    return log_uint8


if __name__ == '__main__':
    img = 'cavity.png'

    size = 3
    src_img = cv2.imread(img)
    b_gray, g_gray, r_gray = cv2.split(src_img)
    b_gray = SSR(b_gray, size)
    g_gray = SSR(g_gray, size)
    r_gray = SSR(r_gray, size)
    result = cv2.merge([b_gray, g_gray, r_gray])

    cv2.imshow('img', src_img)
    cv2.imshow('aaa', result)
    cv2.imwrite('cavity1.png', result)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

对增强后图像进行Canny:

import cv2 as cv
img = cv.imread('cavity1.png', cv.IMREAD_GRAYSCALE)
canny_img = cv.Canny(img, 200, 150)
cv.imwrite('cavity2.png', canny_img)

对边缘图像进行闭运算得到掩码图:

import cv2 as cv
import numpy as np

img = cv.imread('cavity2.png', 1)
k = np.ones((3, 3), np.uint8)
img2 = cv.morphologyEx(img, cv.MORPH_CLOSE, k)  # 闭运算
cv.imwrite('cavity3.png', img2)

对图像进行修复:

import cv2 as cv


def repair(path):
    img = cv.imread(path)

    b = cv.imread('cavity3.png',0)
    dst = cv.inpaint(img, b, 5, cv.INPAINT_TELEA)
    cv.imshow('dst', dst)
    cv.imwrite(f'repair_{path}', dst)
    cv.waitKey()
    cv.destroyAllWindows()


if __name__ == '__main__':
    repair('cavity.png')

1为原图,2为强化后的图,3为Canny后的图,4为闭运算后的图,5是修复后的图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值