利用 Python 进行数据分析实验(七)

一、实验目的

使用Python解决问题

二、实验要求

自主编写并运行代码,按照模板要求撰写实验报告

三、实验步骤

  1. 操作书上第九章内容
  2. 请画出如图2.png所示的图形
  3. 通过编码获得fcity.jpg的手绘图像(如beijing.jpg所示)

四、实验结果

T2

py 复制代码
"""
请画出如图2.png所示的图形
"""
import turtle as t

t.pen(speed=0)
xy = -300

# t.seth(0)
while (xy <= 0):
    t.penup()
    t.goto(xy, xy)  # pendown是默认状态

    for i in range(4):
        t.pendown()
        t.forward(2 * (-xy))
        t.left(90)
        t.penup()

    xy = xy + 10
t.done()
# t.getcanvas().postscript(file = "T2.eps")

T3

py 复制代码
"""
通过编码获得fcity.jpg的手绘图像(如beijing.jpg所示)
"""
import numpy as np
from PIL import Image

image_array = np.asarray(Image.open('./picture/fcity.jpg').convert('L')).astype('float')
depth = 8 # 范围0~100,数值过高则亮部细节过度,数值过低则缺失亮部细节
grad = np.gradient(image_array)
grad_x, grad_y = grad
grad_x = grad_x * depth / 100
grad_y = grad_y * depth / 100
A = np.sqrt(grad_x ** 2 + grad_y ** 2 + 1)
uni_x = grad_x / A
uni_y = grad_y / A
uni_z = 1. / A

# 适当调整了光源的位置,补充部分亮部缺失的细节
vec_el = np.pi / 1.8
vec_az = np.pi / 7
dx = np.cos(vec_el) * np.cos(vec_az)
dy = np.cos(vec_el) * np.sin(vec_az)
dz = np.sin(vec_el)

b = 255 * (dx * uni_x + dy * uni_y + dz * uni_z)
b = b.clip(0, 255)

im = Image.fromarray(b.astype('uint8'))
im.save('./picture/res.jpg')

五、实验体会

相关推荐
半桶水专家5 小时前
go语言中的结构体嵌入详解
开发语言·后端·golang
在屏幕前出油5 小时前
二、Python面向对象编程基础——理解self
开发语言·python
阿方索6 小时前
python文件与数据格式化
开发语言·python
weixin_440730507 小时前
java结构语句学习
java·开发语言·学习
JIngJaneIL7 小时前
基于java+ vue医院管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
量子联盟7 小时前
功能完整的PHP站点导航管理系统php程序;开源免费下载
开发语言·php
仙俊红7 小时前
在 Java 中,`==` 和 `equals()` 的区别
java·开发语言·jvm
信创天地8 小时前
信创国产化数据库的厂商有哪些?分别用在哪个领域?
数据库·python·网络安全·系统架构·系统安全·运维开发
JIngJaneIL8 小时前
基于java + vue校园跑腿便利平台系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
不哦罗密经8 小时前
python相关
服务器·前端·python