做了个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