xiaoxue 发表于 2018-8-28 13:18:00

利用文字识别批量去除文字类型水印。

本帖最后由 xiaoxue 于 2019-3-4 20:49 编辑

简单点的思路 。
图像转换jpg -> post 到 baiduAi -> 返回识别的文字(带坐标)-> 根据返回的坐标Image.new() 生成个#FFfff背景的图像->利用Image.paste() 把#fff图像覆盖住水印# -*- coding: utf-8 -*-
from aip import AipOcr
import time
import random
import sys,re
import requests,json
from PIL import Image, ImageDraw,ImageFont
import base64
# """ 你的 APPID AK SK """
APP_ID = xxx'
API_KEY = 'xxxx'
SECRET_KEY = 'xxxxx'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
a = client.accurate(image)
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
def Wordfilter(words, arr):
      for str in arr:
                if words.find(str) >=0:
                        return True
      return False
for juzi in a['data']['words_result']:
      filterKey = [‘股票学习网','股票','股票学习','股票学','习网','www.']
      if Wordfilter(juzi['words'],filterKey):
                cropZB = juzi['location']
                left = cropZB['left']
                top = cropZB['top']
                right = left + cropZB['width']
                bottom = top + cropZB['height']
                TC_img = Image.new("RGB",(cropZB['width'],cropZB['height']),"#FFFFFF")
                im.paste(TC_img,(left, top, right, bottom))
      
im.save(file)
处理前:

处理后:


一些小技巧:
im.resize((w*2, h*2),Image.ANTIALIAS)
im.resize((w*3, h*3),Image.ANTIALIAS)
im.resize((w*4, h*4),Image.ANTIALIAS)
通过修改 宽和高: 来提高 文字识别的准确率度。
处理完后im.resize((w, h),Image.ANTIALIAS).save('xx.jpg')

wjcj 发表于 2018-8-30 09:19:04

现在已经进入 ai niche 站时代了,楼主有什么好玩的吗, 我在做采集翻译语音自动上传youtb一条龙的自动化站

xiaoxue 发表于 2018-8-30 14:53:01

好玩的? 最近研采集用百度ai做文章分类 tag 内链 去水印啥的。 youtube不审了 没得搞吧。

blockmoon 发表于 2018-9-15 23:19:50

楼主发的好玩啊

xiaoxue 发表于 2018-9-20 21:27:17

blockmoon 发表于 2018-9-15 23:19
楼主发的好玩啊

多交流~ 紫薯补丁

xiaoxue 发表于 2018-9-20 21:28:11

facebook号专家 发表于 2018-9-19 09:03
楼主 漏脸了。。。哈哈

? fb小号咋卖的。

直行转左 发表于 2018-9-30 00:39:23

最近也在搞采集翻译建站,用翻译出来可读性一般:'(
页: [1]
查看完整版本: 利用文字识别批量去除文字类型水印。