python Opencv将图片转为字符画

yipeiwu_com5年前Python基础

做了个Python的小练习,网上有人是利用PIL中的Image来实现的,觉得Opencv库挺方便的,于是利用Opencv库来实现了一下,代码如下:

# -*- 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设计】。

相关文章

Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】

本文实例讲述了Python 网络编程之UDP发送接收数据功能。分享给大家供大家参考,具体如下: demo.py(UDP发送数据): import socket # 导入socket模...

Python实现使用卷积提取图片轮廓功能示例

Python实现使用卷积提取图片轮廓功能示例

本文实例讲述了Python实现使用卷积提取图片轮廓功能。分享给大家供大家参考,具体如下: 一、实例描述 将彩色的图片生成带边缘化信息的图片。 本例中先载入一个图片,然后使用一个“3通道输...

python实现对excel进行数据剔除操作实例

前言 学习Python的过程中,我们会遇到Excel的各种问题。下面这篇文章主要给大家介绍了关于python对excel进行数据剔除操作的相关内容,分享出来供大家参考学习,下面话不多说了...

python实现旋转和水平翻转的方法

如下所示: # coding=utf-8 import glob import os from PIL import Image def rotate_270(imgae):...

解决PySide+Python子线程更新UI线程的问题

在我开发的系统,需要子线程去运行,然后把运行的结果发给UI线程,让UI线程知道运行的进度。 首先创建线程很简单 def newThread(self): d = Data() p...