python图像转字符串_Python 图像转字符串显示

最近找了一个将图像灰度图转化位字符串输出显示的方法,编程语言python,导出文本。

直接上源码:

import cv2

# 字符串类型

ascii_char_all = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

ascii_char = list(" -/1")

# 将灰度值转为字符

def get_char(gray_number, ascii):

length = len(ascii)

unit = (256.0 + 1) / length

return ascii[int(gray_number / unit)]

if __name__ == '__main__':

image = cv2.imread('timg.jpg', 0)

# 图像缩放

image = cv2.resize(image, (0, 0), fx=0.5, fy=0.2)

# 或者图像直接修改尺寸

# image = cv2.resize(image, (120, 60))

txt = ""

for i in range(image.shape[0]):

for j in range(image.shape[1]):

# 对打开的图片的每个坐标的灰度值做判断,

# 用get_char()获取该颜色灰度值对应的字符,然后拼接成字符串txt

txt += get_char(image[i, j], ascii_char_all) # 调用字符串方法或ascii_char

txt += '\n'

print(txt)

# 字符画输出到文件中

f = open('output.txt', 'w')

f.write(txt)需要转成字符串的原图

输出的文本用记事本打开按住Ctrl用鼠标滚轮将其缩到最小截图。

使用ascii_char_all表格转换的图像:

使用ascii_char表格转换的图像:

边缘被字符填充了,这里为了区分我将原图做个直方图均衡化处理:

image = cv2.equalizeHist(image)

显示效果如下:

至于使用ascii_char_all表格做出的图为什么后面字符串有长有短不是圆,还不清楚什么原因,希望有知道的大神指点改进一下,万分感谢。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值