做了个python的小练习,网上有人是利用pil中的image来实现的,觉得opencv库挺方便的,于是利用opencv库来实现了一下,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# -*- coding: utf-8 -*- # feimengjuan import cv2 ascii_char = list ( "$@b%8&wm#*oahkbdpqwmzo0qlcjuyxzcvunxrjft/\|()1{}[]?-_+~<>i!li;:,\"^`'. " ) # 将灰度值转为字符 def get_char(gray_number): length = len (ascii_char) unit = ( 256.0 + 1 ) / length return ascii_char[ int (gray_number / unit)] if __name__ = = '__main__' : image1 = cv2.imread( '8.jpg' ) image = cv2.resize(image1,( 85 , 110 )) gray = cv2.cvtcolor(image,cv2.color_bgr2gray) txt = "" for i in range (image.shape[ 0 ]): for j in range (image.shape[ 1 ]): # 对打开的图片的每个坐标的灰度值做判断, # 用get_char()获取该颜色灰度值对应的字符,然后拼接成字符串txt txt + = get_char(gray[i,j]) txt + = '\n' print txt #字符画输出到文件中 f = open ( 'output.txt' , 'w' ) f.write(txt) |
结果是:
原图片:
结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/feimengjuan/article/details/51277186