python Opencv将图片转为字符画

时间:2022-09-27 11:06:00

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

结果是:

原图片:

python Opencv将图片转为字符画

结果:

python Opencv将图片转为字符画

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/feimengjuan/article/details/51277186