利用 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')

五、实验体会

相关推荐
hef2883 小时前
如何生成特定SQL的AWR报告_@awrsqrpt.sql深度剖析单条语句性能
jvm·数据库·python
Jinkxs4 小时前
从语法纠错到项目重构:Python+Copilot 的全流程开发效率提升指南
python·重构·copilot
技术专家4 小时前
Stable Diffusion系列的详细讨论 / Detailed Discussion of the Stable Diffusion Series
人工智能·python·算法·推荐算法·1024程序员节
段一凡-华北理工大学4 小时前
【大模型+知识图谱+工业智能体技术架构】~系列文章01:快速了解与初学入门!!!
人工智能·python·架构·知识图谱·工业智能体
IT小Qi4 小时前
iperf3网络测试工具
网络·python·测试工具·信息与通信·ip
以神为界4 小时前
Python入门实操:基础语法+爬虫入门+模块使用全指南
开发语言·网络·爬虫·python·安全·web
xcjbqd04 小时前
Python API怎么加Token认证_JWT生成与验证拦截器实现
jvm·数据库·python
io_T_T4 小时前
如何调用google api 进行开发(使用免费版本)
python
逻辑驱动的ken5 小时前
Java高频面试题:03
java·开发语言·面试·求职招聘·春招
噜噜大王_5 小时前
深入理解 C 语言内存操作函数:memcpy、memmove、memset、memcmp
c语言·开发语言