1、絮叨
今天花了半天的时间又重新捡起Python的学习,刚开始打开虚拟机发现虚拟机的密码都忘掉了,然后就默默的去寻找存密码的文件夹,还好在百度云里面还有保存的记录。开机后,竟然发现简单的linux操作都忘掉了,就行上次学了两年的车驾照出来了两年后开车一开始竟然忘了脚刹和离合的的位置,好不尴尬。简单的熟悉之后开始了正常的操作,由于前两天又重新复习了一些Python的基本操作,所以今天准备拿一个小项目来练一练。选定了Python实验楼的一个比较简单的小项目--用字符来表示图片,主要是运用写图像方面的知识和pillow库,可能是小白,我感觉pillow还是挺好用的。今天遇到的问题不少有些是基础到虚拟机连不上网的解决方案,还有调试过程中遇到的问题都整理下来了,当做是记录的自己一天到底干了什么有什么收获。
2、问题整理
1、虚拟机连接不上网络。已经遇到了很多次这样的问题了,几乎从去年第一次出现问题之后就一直有这样的问题。查询了下往上的答案。首先我把linux关机,先从虚拟机编辑->虚拟网络编辑器,把里面的网络连接恢复默认或删除掉原先的连接,然后添加新的网络,选择nat模式,然后看下windows服务里面关于vm的服务开启了没,没有的话就启动并设置为自动启动(由于安装了电脑管家,关闭了相关服务的启动项,我就先将电脑管家里面的启动项设置为启用,随后重启机器),保证开启之后再重新连接linux,well down!
基本上是按照这个步骤做的 http://blog.youkuaiyun.com/main_h_/article/details/56291977
2、linux的相关操作。忘记了vim的修改和保存操作,还有通过命令行进行删除文件和文件夹,以及下载Python库(后面pillow库安装)。
rmdir 文件名 -r删除命令。
3、复现图片转字符画程序。原理很简单就是通过计算比较简单的位图里面的rgb的值映射到灰度值(灰度范围0-255)。随后计算灰度值在ascii字符串里面的对应的字符。
rgb转灰度值的公式:gray = 0.2126 * r + 0.7152 * g + 0.0722 * b
pillow库安装:
$ sudo apt-get update
$ sudo apt-get install python-dev
$ sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk$ sudo pip install pillow
随后学习了pillow库中的参数设置操作,还有库里面处理的相关操作。
from PIL import Image /*导入包中的模块*/
parser = argparse.ArgumentParser()
parser.add_argument('file') #输入文件
parser.add_argument('-o', '--output') #输出文件
parser.add_argument('--width', type = int, default = 80) #输出字符画宽
parser.add_argument('--height', type = int, default = 80) #输出字符画高
#获取参数
args = parser.parse_args()
IMG = args.file
WIDTH = args.width
HEIGHT = args.height
OUTPUT = args.output
编辑过程中发现了two few argument,原因是因为我们用到了处理命令行的库,但是没有在执行程序时输入参数。
另一个问题就是显示图片时候没有出现理想的字符(也就是字符种类少),分析了应该是选取的字符数量少,增加了字符数目还是发现没有解决这个问题,后来发现是因为我们处理过程中将上面灰度转化的式子的结果没有进行浮点数的考虑。导致会出现灰度值与字符换算过程中总是灰度值相差不大但是字符表示情况是一样。
效果图(找了张特征比较少的图片):