admin管理员组

文章数量:1794759

第13章 图像像素采样(《Python趣味创意编程》教学视频)

第13章 图像像素采样(《Python趣味创意编程》教学视频)

(图书介绍:童晶:《Python趣味创意编程》新书预告)

本章我们将实现图像像素采样的绘制效果,如图所示。首先学习图像文件的读取与显示,获取像素颜色;然后生成马赛克效果,并实现随机采样画圆、均匀采样画圆;最后利用叶序采样的方式,实现风格化图像的自动生成。

13 图像像素采样

视频教程:

最终代码:

def setup(): global img,goldenRatioAngle # 全局变量 goldenRatioAngle = ((sqrt(5)-1)/2)*360 # 黄金分割比乘以360度 noStroke() # 不绘制线条 size(500, 500) # 画面大小 img = loadImage("image2.jpg") # 导入图片文件 def draw(): background(255) # 白色背景 center_x = width/2 # 画面中心 center_y = height/2 id = 0 # 叶序采样点的序号 radius = 1 # 初始半径(采样点到画面中心的距离) radiusStep = map(mouseX,0,height,5,1) # 半径增加的步长 maxDiameter = map(mouseY,0,width,1,6) # 画圆的最大直径 while radius<=width/2: # 当半径小于画面宽度一半时 degree = id*goldenRatioAngle # 当前采样点和中心连线的角度 angle = radians(degree%360) # 转换为弧度 radius = sqrt(id) * radiusStep # 采样点到中心的距离,逐渐增加 x = center_x + radius*cos(angle) # 求出当前采样点的坐标 y = center_y + radius*sin(angle) c = img.get(int(x), int(y)) # 当前采样像素的颜色 fill(c) # 设置为填充颜色 bright = brightness(c) # 当前像素的亮度值 diameter = map(bright,0,255,maxDiameter,1) # 越亮直径越小 circle(x,y,diameter) # 画一个小圆 id += 1 # 采样点序号加1

 

这一章主要要学习了while循环语句,讲解了图像的基本概念,利用这些知识实现了图像像素采样。读者也可以利用图像作为基本元素,绘制出更加丰富有趣的互动效果。

 

本文标签: 创意像素趣味图像视频