最近在慕课网上学习北京理工大学的Python数据分析与展示,里面有一个图片的手绘效果挺有意思的。拿来学习与分享。详情请参考课程:https://www.icourse163.org/learn/BIT-1001870002#/learn/announce
python中图像是一个由像素组成的三维矩阵(高,宽和RGB),每个元素是一个RGB值。
对图像变换的操作一般流程为:读入图像文件---获得RGB值---对RGB值进行运算修改---另存为新图像。
手绘效果特征:色彩为黑白灰,边界线条重,相同或相近色彩趋于白色,略有光源效果
运算思路:利用像素之间的梯度值和之间的虚拟深度值对图像进行重构,根据灰度变化来模拟人类视觉的明暗程度。
效果图如下:
代码如下:
# -*- coding: utf-8 -*-
"""
Created on Tue Mar 12 17:35:46 2019
@author: Administrator
"""
from PIL import Image
import numpy as np
a = np.asarray(Image.open(r"C:\Users\Administrator\Desktop\codes\test1.jpg").convert('L')).astype('float')
depth = 10. # (0-100)
grad = np.gradient(a) #取图像灰度的梯度值
grad_x, grad_y = grad