文:野客
来源:Python技术(pythonall)
大家好,欢迎来到Crossin的编程教室!
字符画是一种由字母、标点或其他字符组成的图画,它产生于互联网时代,在聊天软件中使用较多。
本文我们来运用Python的图像处理功能,实现将图片转成字符画。
静态图片
首先,我们来演示将静态图片转为字符画,功能实现主要用到的Python库为OpenCV,安装使用pipinstallopencv-python命令即可。
功能实现的基本思路为:利用聚类将像素信息聚为3或5类,颜色最深的一类用数字密集度表示,阴影的一类用横杠(-)表示,明亮部分用空白表示。
主要代码实现如下:
defimg2strimg(frame,K=5):iftype(frame)!=np.ndarray
rame=np.array(frame)height,width,*_=frame.shapeframe_gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)frame_array=np.float32(frame_gray.reshape(-1))criteria=(cv2.TERM_CRITERIA_EPS+cv2.TERM_CRITERIA_MAX_ITER,10,1.0)flags=cv2.KMEANS_RANDOM_CENTERS#得到labels(类别)、centroids(矩心)