python-复制图标
课题要求
1、给定一个图标,如校徽,识别校徽的轮廓、颜色、内容等特征;
2、利用turtle工具包演示该校徽绘制的全过程,并将新生成图标保存为png图片。
需求分析
1、本课题的内容和要求有三点:
(1)给定任意一个图标,如校徽,识别校徽的颜色,轮廓,内容等特征。
(2)利用turtle工具包演示图标绘制全过程
(3)将新生成的图标保存为PNG格式的图片。
2、对于第一点要求,我们首先要实现对图标的特征提取。一个图标基本具有三要素:文字,色彩,图形。图标可以由许多图形构成,但它都有一个最基本的轮廓,轮廓的提取(这里需要了解图像的灰度化和二值化等),我们用PIL模块的Image类实现或者opencv实现,颜色的提取依然可以用PIL模块,它可以提取某个像素点的R,G,B。文字的提取和识别可以用百度云或者tesseract-ocr,但是百度云的识别较为准确。
3、对于第二点要求,我们首先要学会使用turtle工具包,掌握它的基本操作,例如对画笔的基本控制和它的走向,画笔画出的线条的粗细。然后依照提取出来的轮廓,画出框架,再用第一步提取出来的颜色对指定区域进行颜色填充,最后对上面画出的基本图形与原图作比较,进行修改和补充,完成演示图标的绘制全过程。
4、对于第三点要求,我们要完成一个图片格式的转化。因为用Turtle画的图无法直接保存成png格式的,只能先保存成eps,再将eps转为png格式,这个可以用PIL的image类的函数save()实现。
5、整个工作可以分为三个步骤:
开发环境和开发工具
开发语言
全部代码仅运用python语言。
开发工具
软件在开发过程使用的集成式开发工具、软件包、库函数等。
运用的集成式开发工具:pycharm
软件包:下载了Tesseract-OCR安装包、chi_sim.traineddata简体中文语言包;
库函数:在pycharm中安装了PIL(pillow),opencv模块用以对图片进行处理,配置了tesserocr库用以提取文字。安装了numpy模块,对提取出来点转化成矩阵进行处理。
(1)PIL的image模块函数:open(),filter(),Convert(),save()等
(2)Opencv:imread(),namedWindow(),setMouseCallback(),imshow()等
(3)pytesseract:imag_to_string()等
开发环境
软件框架:无
硬件平台:pycharm
操作系统:windows
模块分析
整个分为三个模块