python利用opencv去除图片logo_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()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

对增强后图像进行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)

1

2

3

4

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

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)

1

2

3

4

5

6

7

对图像进行修复:

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')

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值