环境:python3.6
本篇文章主要讲述的功能是如何把一张包含中文文字的图片转换成英文图片,并且保证图片不受影响。
这里先举个案例:
上图的左边是原始图片没有做任何处理,右边是经过代码处理过翻译后的图片,(由于截图原因导致两张图大小与实际有点偏差)
首先我们先讲一下这个项目的大致思路:
1.识别出图片中全部文字的坐标。
这一点我是借助有道智云的ocr图片识别接口获取坐标信息的
详情自己去看,他们有文档,注册送100元试用,能用很久,链接:有道智云服务地址。
ps:他们家的识别水平一般,坐标不怎么精确
2.对有道智云返回的数据进行清洗。
这个第三方API 返回的json数据是略微复杂的,我们要去他进行提取,和对非中文符号进行过滤(数字,字母也会被识别)
"""判断字符串是否含中文,有为True"""
def check_u(contents):
zhmodel = re.compile(u'[\u4e00-\u9fa5]') #检查中文
#zhmodel = re.compile(u'[^\u4e00-\u9fa5]') #检查非中文
match = zhmodel.search(contents)
if match:
return True
else:
return False
处理过后的数据保存再一个列表中,大致内容如下:
list=[{'商品信息': [328, 28, 458, 28, 458, 65, 328, 65]}, {'品牌:纪诗萱': [253, 190, 452, 190, 452, 230, 253, 230]},
{'货号: 4118': [253, 223, 427, 223, 427, 261, 253, 261]}, {'颜色:藏蓝色黑色': [254, 254, 540, 254, 540, 295, 254, 295]},
{'面料: 80%涤纶20%粘纤': [254, 287, 624, 287, 624, 325, 254, 325]}, {'尺码:M L XL 2XL 3XL 4XL': [254, 319, 698, 319, 698, 356, 254, 356]},
{'版型指数:修身': [229, 398, 434, 398, 434, 435, 229, 435]}, {'长度指数:中长款': [229, 428, 466, 428, 466, 465, 229, 465]},
{'弹性指数:无弹': [517, 397, 721, 397, 721, 435, 517, 435]}, {'厚度指数:常规': [519, 428, 723, 428, 723, 466, 519, 466]},
{'女款大衣尺码 E 腰E': [96, 572, 499, 572, 499, 607, 96, 607]}, {'衣长': [534, 573, 590, 573, 590, 607, 534, 607]},
{'袖长': [625, 571, 681, 571, 681, 607, 625, 607]}, {'手工测量,存在1~3cm的误差,敬请谅解': [124, 838, 663, 838, 663, 876, 124, 876]},
{'洗涤说明': [104, 942, 171, 942, 171, 970, 104, 970]}, {'常规水洗': [280, 956, 350, 956, 350, 983, 280, 983]},
{'不可氯漂': [396, 957, 466, 957, 466, 982, 396, 982]}, {'悬挂晾干': [525, 957, 591, 957, 591, 981, 525, 981]},
{'蒸汽熨烫': [640, 956, 707, 956, 707, 983, 640, 983]}]
拿