-
python 图标复制(Turtle)
2020-07-04 20:35:39puthon-复制图标 课题要求 1、给定一个图标,如校徽,识别校徽的轮廓、颜色、内容等特征; 2、利用turtle工具包演示该校徽绘制的全过程,并将新生成图标保存为png图片。 需求分析 1、 本课题的内容和要求有三点: ...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模块分析
整个分为三个模块:提取模块(Fimformation),绘图模块(Draw),保存模块(Save)。
模块1:提取模块
主要功能:提取图片的相关信息如颜色、轮廓等,为后期绘图奠定基础,得到数据信息。
设计思路:运用各种方法函数将信息提取出来,并用文件形式进行保存。
实施方案:用PIL和OpenCV来对图片进行处理,定义了frounding()函数,运用ImageFilter模块的filter方法提取出图片的轮廓并保存该轮廓图片;运用tesseract-OCR的pytesseract提取图片的文字,前提是文字内容按正常规格字体,字体越正规,准确率越高;定义fRGB()函数得到像素点集,运用PIL的Image模块的方法提取RGB点集,convert(”RGB”)方法将图片转化为RGB格式,并提取每一个像素点的RGB,存入o.txt文件中;定义fL()函数来将图片转为灰度图片并提取灰度值储存在p.txt文件中;定义bian()函数将图片进行锐化,并保存锐化图片;定义Lpicture()函数来查看灰度图片并将其保存下来。这些都是图片的修改以及图片信息的存储,可以为数据分析和turtle绘画奠定基础。模块2:绘制模块
主要功能:用turtle绘制出图像。
设计思路:运用每个像素点的RGB值,让turtle海龟从左上角开始,一个一个点进行绘制。将RGB点集导入给turtle,运用turtle的绘图方法,让turtle能够实现跟随坐标自动化绘制图像,并精准的赋予相应的颜色,尽量达到百分之百的精准复制,全程自动化。
实施方案:在draw()模块中进行绘制,得到图片的长和宽,运用convert(”RGB”)方法将图片转化为RGB格式,并用getpixel(i, j)提取像素点RGB值保存在list中,然后直接遍历list,取出像素值;在turtle绘图过程中,我们需要先将中间的海龟,回归到左上角然后从左到右,从上到下利用像素点一个一个标上去,全程自动;当海龟到达最右端时,利用飞行将其挪至最左端再往下一点,然后再次向右绘制,只需在遍历整张图的过程中,利用if去判断是否到达最右端,其余情况只需要向右走就行。同时,为了清楚明了,我们把所有的像素点RGB值在绘画的过程中print出来。*(其实这个方法是一种笨方法,思路简单,也没什么技术含量,耗时久,而且绘制图片的时候看起来也不美观,但是我只能想到这种方法了┭┮﹏┭┮)
模块3:保存模块
主要功能:将turtle绘制的图像保存为png图片
设计思路:因为不能直接保存为png图片,所以我们先选择保存为eps脚本再转为jpg、png图片。
实施方案:利用turtle的getscreen()方法获取到图像,引入PIL中的image模块,将turtle绘制完的图像保存为eps 即postscript脚本,然后先将其转化为jpg格式图片,png格式多了一个alpha通道,用来存储透明度信息;所以在转为png格式的时候,需要加入透明度信息,定义一个transparent_back()函数进行转换,在里面遍历循环每一个点,为其加上信息,得到总体的png图片。代码
# coding = utf -8 from PIL import Image from PIL import ImageEnhance from PIL import ImageFilter import turtle as t import pytesseract #提取模块 def frounding() :#提取轮廓 im = Image.open("E:\\xiao.png") om = im.filter(ImageFilter.CONTOUR) om.save('E:\\xiao3.png') print("***提取轮廓完成***") #实现图片文字(中文)提取并打印 im = Image.open("E:\\xiao.png")#这里对图片文字格式的要求很高 print("徽章文字为:") text = pytesseract.image_to_string((im), lang='chi_sim') print(text) def fRGB() :#提取像素点RGB f = open("o.txt", 'w+') # o.txt是文件名,w:覆盖写模式,文件不存在则创建,存在就会完全覆盖。+:与r/w/x/a一同使用,再原功能基础上增加同时读写功能。 im = Image.open("E:\\xiao.png") length, height = im.size[0], im.size[1] rgb_im = im.convert("RGB") for i in range(length): list = [] for j in range(height): # getpixel函数是用来获取图像中某一点像素的RGB颜色值,getpixel的参数是一个坐标点,返回值是R,G,B list.append(rgb_im.getpixel((i, j))) print(list, file=f) # 将R,G,B写入文件中 print("***RGB点集提取完成***") #会得到一个o.txt文件,里面是每一个点的对应RGB值,很客观 def fL() :#转为灰度图片并提取灰度值 f = open("p.txt", 'w+') # o.txt是文件名,w:覆盖写模式,文件不存在则创建,存在就会完全覆盖。+:与r/w/x/a一同使用,再原功能基础上增加同时读写功能。 im = Image.open("E:\\xiao.png") length, height = im.size[0], im.size[1] rgb_im = im.convert("L") for i in range(length): list = [] for j in range(height): # getpixel函数是用来获取图像中某一点像素的RGB颜色值,getpixel的参数是一个坐标点,返回值是R,G,B list.append(rgb_im.getpixel((i, j))) print(list, file=f) # 将R,G,B写入文件中 print("***灰度图像值提取完成***") def Lpicture() :#查看灰度图片并保存 im = Image.open("E:\\xiao.png") img = im.convert("L") img.save("yuan2","png") img.show() print("***灰度图保存完成***") def bian() :#对图片实现边缘锐化并保存(扩展程序) im = Image.open("E:\\xiao.png") om = ImageEnhance.Sharpness(im) om.enhance(20).save('E:\\xiao2.png') print("***边缘锐化图保存完成***") #绘图模块 def draw(): # f = open("o.txt", 'w+') # o.txt是文件名,w:覆盖写模式,文件不存在则创建,存在就会完全覆盖。+:与r/w/x/a一同使用,再原功能基础上增加同时读写功能。 im = Image.open(r"E:\\xiao.png") l, h = im.size[0], im.size[1] rgb_im = im.convert("RGB") list = [] for j in range(h): for i in range(l): # getpixel函数是用来获取图像中某一点像素的RGB颜色值,getpixel的参数是一个坐标点,返回值是R,G,B list.append(rgb_im.getpixel((i, j))) try: t.setup() except t.Terminator: pass print(list[210600]) t.colormode(255) t.penup() t.bk(h//2) t.left(90) t.fd(l//2) t.seth(0) t.pendown() t.speed(1) t.delay(500) t.tracer(False) # print(list, file=f) # 将R,G,B写入文件中 # t.setup(1000,800) for i in range(len(list)): if (i + 1) % l == 0: t.penup() t.bk(l) t.right(90) t.fd(1) t.seth(0) t.pendown() rgb = list[i] print(rgb) t.pencolor(rgb) t.fd(1) t.done() frounding() fRGB() fL() Lpicture() bian() draw() #保存模块 def saveJ() :#暂先保存图片为jpg ts.getcanvas().postscript(file="E:\\work.eps") #.eps文件即postscript脚本 im = Image.open("E:\\work.eps") im.save("E:\\work.jpg", "JPEG") img=Image.open('E:\\work.jpg') img=transparent_back(img) img.save('img2.png') def transparent_back(img): img = img.convert('RGBA') L, H = img.size color_0 = (255,255,255,255)#要替换的颜色 for h in range(H): for l in range(L): dot = (l,h) color_1 = img.getpixel(dot) if color_1 == color_0: color_1 = color_1[:-1] + (0,) img.putpixel(dot,color_1) return img saveJ() print("**turtle图片保存成功**")
原图:
turtle绘制的图片:
提取的轮廓:
-
office开发小图标,复制粘贴小图标
2018-01-04 10:14:20office开发小图标,例如一些复制粘贴的小图标,以及其他类似的小图标,可用于自己开发的项目中,如我在visio的二次开发就会用到 -
axhub插件一键复制iconfont图标
2020-03-25 14:52:29使用Axhub,可以做以下...1)可以一键复制iconfont图标到 Axure 2)可以在iconfont调整颜色或大小后再复制到Axure 3)可以复制到Axure后转换为svg,无损缩放及调整颜色 4)支持iconfont 200W+ 单色和多色图标 -
AxhubAssistant一键复制iconfont图标到Axure
2018-12-17 15:54:43AxhubAssistant一键复制iconfont图标到Axure。 -
LabVIEW:如何复制一个VI的图标到另一个VI
2020-11-26 11:30:041,到需要复制图标VI的前面板,左键单击图标,选中后,Ctrl + c复制。 2,到另一个VI前面板,右键单击,然后选择编辑图标。进入编辑界面后,点击上方的编辑,选择粘贴,然后图标就改变了。 ...1,到需要复制图标VI的前面板,左键单击图标,选中后,Ctrl + c复制。
2,到另一个VI前面板,右键单击,然后选择编辑图标。进入编辑界面后,点击上方的编辑,选择粘贴,然后图标就改变了。
-
AxureUX 复制Iconfont图标到Axure
2019-05-14 15:00:17https://www.iconfont.cn/ 可一键复制Iconfont图标到Axure内的Chrome扩展 支持QQ、360等Chromium套壳浏览器 iconfont只是开始,我们的目标是星辰大海~ 工具https://axhub.im/icons/ ...可一键复制Iconfont图标到Axure内的 Chrome扩展
支持QQ、360等Chromium套壳浏览器
iconfont只是开始,我们的目标是星辰大海~
-
Axhub插件一键复制Iconfont图标到Axure
2019-06-10 13:55:41在公司做原型设计的时候,需要用到一些小图标,默认Axure的图标库并不丰富,所以就想办法导入其他图标,搜索中发现这个Chrome的插件,安装这个插件后就可以任意复制阿里图标库的图标到Axure啦,一键复制很便捷。...在公司做原型设计的时候,需要用到一些小图标,默认Axure的图标库并不丰富,所以就想办法导入其他图标,搜索中发现这个Chrome的插件,安装这个插件后就可以任意复制阿里图标库的图标到Axure啦,一键复制很便捷。
Axhub插件下载地址:https://axhub.im/icons/
可一键复制Iconfont图标到Axure内的 Chrome扩展,如果无法访问谷歌商店的用户,可以下载点击安装版下载crx文件拖拽到Chrome。
阿里巴巴图标库:https://www.iconfont.cn/
插件安装好之后,在浏览器中可以看到对应的图标
点击阿里巴巴图标库,任意选择图标点击下载,就有一键复制到Axure的选项~
然后就可以在宇宙无敌强的原型设计软件Axure中,肆意用好看的小图标啦!~
-
关于windows图标和任务列图标相互复制的问题
2016-05-03 02:32:57怎么把windows任务列图标复制到资源管理器里,怎么样把资源管理器移动到任务列? -
前端实现复制小图标效果
2018-06-26 11:52:32"复制代码" style= " color : rgb ( 51 , 153 , 255 ); border : none ; " onclick= " copyCode () " target= "_blank" > < img src= "https://common.cnblogs.com/images/copycode.gif" alt= "复制代码" ... -
学习用PS画图标-复制旋转
2020-03-07 10:20:32最近在B站偶然看到布尔运算画图标的教程,学习了几个基础快捷键,可以提高效率。 1 复制旋转 这种图案用复制旋转会比较方便,用到快捷键是ctrl+alt+T,选中形状后按此快捷键,会进入编辑模式,此时拖动形状的中心点... -
快速复制iconfont中的图标的小插件
2019-04-17 15:55:38安装之后可以直接从iconfont中直接复制icon,在线支持在iconfont调整大小颜色后在进行复制,非常便捷好用。 解压后直接拖拽到Google 浏览器即可安装 -
layui学习笔记1:图标使用和自定义矢量库图标与第三方图标库扩充
2021-01-08 22:25:13点击这前往,复制图标代码:http://www.shagua.wiki/project/3?p=85 引入第三方图标教程:http://www.shagua.wiki/project/3?p=120 -
web字体和图标
2020-06-18 16:00:16web字体 解决用户电脑上没有安装相应字体 ...如果我们要使用某个图标,就在那个网站上复制图标代码,然后用元素i生成类名为图标代码加上 这些图标可以看成是文字(可以像文字一样修改个各种属性),不是图片 ... -
删除一行图标与权限复制
2012-04-17 15:14:22(1)图标 在编辑从表的data标签中: 但是在页面上并没有显示出来,原来问题出在对应的view中:?后面忘记了冒号。 op_edit ? : table.master.unresovle= $ table.detail.unresovl -
Excel复制表格,文字,以及图标到word文档
2019-08-13 02:49:18Excel复制表格,文字,以及图标到word文档 Sub ExportExcelToWord() 'PURPOSE: Copy/Paste An Excel Table, Text, & Logo Image Into a New Word Document 'NOTE: Must have Word Object Library Active in ... -
visual c++ vc自定义 windows复制文件 对话框(自定义对话框上的图标,文字).zip
2021-01-21 20:05:40visual c++ vc自定义 windows复制文件 对话框(自定义对话框上的图标,文字).zip -
Qt程序app添加图标复制到其它电脑后不显示的解决方法
2019-05-27 08:56:00主是要因为Qt显示图标需要依赖一些库来进行转换,而复制到其它电脑后不显示,是没有复制相应的库所致,所以把相应库复制过去就行了。 复制Qt的plugins目录下的imageformats文件到程序目录即可。注意debug库和... -
vue-图标的使用
2020-12-29 14:30:51选好图标后,复制图标下代码,直接在.vue中写入““,即可显示,可在第二种,是下载到本地,会下载下来一个压缩包,解压后发现文件夹有一堆文件,在项目的common部分新建个文件夹,用于存放这些文件,选取其中的 ... -
可直接复制粘贴的boostrap图标库网址
2017-10-26 10:27:001:http://fontawesome.dashgame.com/ 2:http://www.kuiyu.net/art-34.html 3:http://www.bootcss.com/p/font-awesome/design.html 4:http://www.bootcss.com/p/font-awesome/ ...... -
小程序使用阿里图标
2020-01-11 10:05:00阿里图标链接:https://www.iconfont.cn/home/index?spm=a313x.7781069.1998910419.2 ... 2)复制图标项目css文件到小程序wxss文件中(详看截图); 3)在小程序中使用阿里图标: ... -
电脑桌面出现透明条图标“复制”“刷新”解决方法
2021-03-04 23:01:03电脑在不经意点击刷新后就留下一个白色透明的条,或者电脑复制后,桌面出现“复制”的图标,刷新取不掉怎么办? 正如下图所示电脑桌面刷新时出现一个白色的闪条,不关打开什么程序,这个白条都在最上面,影响用户的... -
teenyicons.com:优雅的1px图标-源码
2021-02-25 03:32:22复制图标源 仪表板 调整SVG的大小 用于下载所有SVG的zip的按钮 在复制和下载之间切换 颜色选项 模糊搜索 使用标签搜索 搜索作为查询参数。 例如,“ teenyicons.com/?search=vue” 分类图标 图标请求按钮 ... -
QT里添加图标复制到另外电脑后不显示解决方法
2016-06-08 09:03:29QT图标不显示 -
地址栏收藏夹图标设置页面禁止全选复制粘贴及右键
2011-04-27 15:13:20Java项目,在MyEclipse中跑,没什么要求, 没有一句Java代码,全部是Javascript语句, ...4、防止复制; 5、鼠标右键被屏蔽; 6、输入法被屏蔽; 7、粘贴被屏蔽; 每个功能 1 分,很合理,O(∩_∩)O谢谢合作 QQ:83433857 -
Word复制图片,导致桌面图标变成蓝色阴影
2009-10-28 22:56:00电脑|属性|高级|性能项的 设置|自定义|在桌面上为图标标签使用阴影|打上勾| 如果不行,再在桌面空白处右击|排列图标|在桌面上锁定web项目|把勾去掉 可以尝试以下4种方法: 1.右击“我的电脑”,依次单击“属性/高级/... -
复制SVN文件夹,去除版本信息(绿色小图标)的方法
2017-11-02 13:42:10其实在复制SVN文件夹后(Windows平台)后,是由于.svn的文件存在才导致了版本信息的无法去除,即绿色的小图标一直存在的现象。所以只要去除文件夹下的.svn文件即可。 新建一个.reg文件,内容如下 ... -
css - 字体图标的制作
2018-05-21 11:02:00很多的时候我们在开发过程中一般都是直接使用图片,尤其在移动页面频繁请求图片对性能不是很好 ,所以图标字体的应用也越来越... 1:复制图标的路径;打开ps选中图层中的路径,然后“Ctrl+C”; 2:粘贴路径到Il...