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

编程知识 更新时间:2023-04-07 08:12:53

(图书介绍:童晶:《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循环语句,讲解了图像的基本概念,利用这些知识实现了图像像素采样。读者也可以利用图像作为基本元素,绘制出更加丰富有趣的互动效果。

 

更多推荐

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

本文发布于:2023-04-07 08:12:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/4fced68d2a76a798bf3ef4b517566ce6.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:创意   像素   趣味   图像   视频

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 52845文章数
  • 14阅读数
  • 0评论数