Python大数据处理 用Python画图

目录

一、实验目的

二、实验要求

三、实验代码

四、实验结果

五、实验体会


一、实验目的

  1. 体会基本的python编程方法;
  2. 学习python中的各类函数;
  3. 学习如何用Python画图。

二、实验要求

1、操作书上第九章的内容

2、请画出如图2.png所示的图形

3、通过编码获得fcity.jpg的手绘图像(如beijing.jpg所示)

三、实验代码

1、略

import turtle as t
#t.Turtle().screen.delay(0)  #加速
s=0
t.pen 
t.seth(0)
length=0
while (length !=400): #当边长达到400时循环结束
    t.penup()       #提起画笔
    t.goto(s,s)     #新的起点坐标
    t.pendown()     #放下画笔
    for i in range(4):
        t.fd(length)    #边长
        t.left(90)  #画笔方向向左旋转90度
    length += 10    #边长加10
    s -= 5    #改变画笔起点
t.hideturtle()         #绘图结束后把笔头隐藏起来
t.done()               #绘图结束后使窗口停留
from PIL import Image
import numpy as np

a = np.asarray(Image.open('./fcity.jpg').convert('L')).astype('float')

depth = 10. 						# (0-100)
grad = np.gradient(a)				#取图像灰度的梯度值
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/2.2 					# 光源的俯视角度,弧度值
vec_az = np.pi/4. 					# 光源的方位角度,弧度值
dx = np.cos(vec_el)*np.cos(vec_az) 	#光源对x 轴的影响
dy = np.cos(vec_el)*np.sin(vec_az) 	#光源对y 轴的影响
dz = np.sin(vec_el) 				#光源对z 轴的影响

b = 255*(dx*uni_x + dy*uni_y + dz*uni_z) 	#光源归一化
b = b.clip(0,255)

im = Image.fromarray(b.astype('uint8')) 	#重构图像
im.save('./beijing.jpg')

四、实验结果

图1 题1结果图

图2 题2结果图

五、实验体会

  1. 学会了使用Python中简单的函数;
  2. 初步掌握了利用Python画图的方法和根据图片用Python手绘图像的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值