Ⅰ python怎么根据数据生成图像
网上有很多的字符画,看起来很炫酷,下面就告诉你如何用Python做这么炫酷的事,
说下思路吧:
原图->灰度->根据像素亮度-映射到指定的字符序列中->输出。
字符越多,字符变化稠密。效果会更好。
如果根据灰度图的像素亮度范围制作字符画,效果会更好。
如果再使用调色板,对字符进行改色,就更像原图了。
这是原图:
这是生成的字符画:
废话不多说,直接上代码:
复制代码 代码如下:
import Image
chars =" ...',;:clodxkLO0DGEKNWMM"
fn=r'c:\users\liabc\desktop\jianbing.png'
f1=lambda
F:''.join([(k%100!=0) and m or m+'\n' for k,m in enumerate(apply(lambda
x:[chars[x[j,i]%len(chars)] for i in xrange(70) for j in
xrange(100)],(Image.open(F).resize((100,70)).convert("L").load(),)),1)])
f=open(r"c:\users\liabc\desktop\aface.txt","w")
f.write(f1(fn))
f.close()
Ⅱ python图像处理代码,望大神详细解释。越详细越好
#初始化一个矩形np.max(marks)+1行,3列,默认值为0
colorTab=np.zeros((np.max(marks)+1,3))
#遍历数组,给每行的3列赋值,就是RGB颜色值,8位的
foriinrange(len(colorTab)):
aa=np.random.uniform(0,255)
bb=np.random.uniform(0,255)
cc=np.random.uniform(0,255)
colorTab[i]=np.array([aa,bb,cc],np.uint8)
#初始化另一个跟img图像形状大小一样的图像,一副黑色图像
bgrImage=np.zeros(img.shape,np.uint8)
#遍历marks形状的行列
foriinrange(marks.shape[0]):
forjinrange(marks.shape[1]):
index=marks[i][j]
#判断是不是区域与区域之间的分界,如果是边界(-1),则使用白色显示
ifindex==-1:
bgrImage[i][j]=np.array([255,255,255])#像素点设置位白色
else:
bgrImage[i][j]=colorTab[index]#像素点设置位上边随机生成的颜色值
#显示处理后的图像图像
cv2.imshow('AfterColorFill',bgrImage)
#总结,先生成一个跟marks相同数量的row*col的一张颜色表,然后创建一个跟marks相同大小的一副黑色图像
#最后对黑色图像画出白色边界和内部随机彩色像素值
Ⅲ python语言,利用递归绘制彩色四阶五边形科赫雪花,并上传代码和科赫雪花效果图
import random
import turtle
def random_color():
rgbl=[255,0,0]
random.shuffle(rgbl)
return tuple(rgbl)
def koch(size,n):
if n==0:
turtle.fd(size)
else:
for angle in [0,60,-120,60]:
cc = random_color()
turtle.pencolor(cc[0], cc[1], cc[2])
turtle.left(angle)
koch(size/3,n-1)
def main():
turtle.colormode(255)
turtle.setup(600,600)
turtle.penup()
turtle.goto(-200,100)
turtle.pendown()
turtle.pensize(2)
level=4 #4阶科赫雪花,阶数
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.right(120)
koch(400,level)
turtle.hideturtle()
turtle.done()
main()
效果如图:
Ⅳ python炫酷烟花表白源代码是多少
学完本教程后,你也能做出这样的烟花秀。
如上图示,我们这里通过让画面上一个粒子分裂为X数量的粒子来模拟爆炸效果。粒子会发生"膨胀”,意思是它们会以恒速移动且相互之间的角度相等。这样就能让我们以一个向外膨胀的圆圈形式模拟出烟花绽放的画面。
经过一定时间后,粒子会进入"自由落体”阶段,也就是由于重力因素它们开始坠落到地面,仿若绽放后熄灭的烟花。
基本知识:用Python和Tkinter设计烟花。
这里不再一股脑把数学知识全丢出来,我们边写代码边说理论。首先,确保你安装和导入了Tkinter,它是Python的标准GUI库,广泛应用于各种各样的项目和程序开发,在Python中使用Tkinter可以快速的创建GUI应用程序。
import tkinter as tk
from PIL import Image, ImageTk
from time import time, sleep
from random import choice, uniform, randint
from math import sin, cos, radians
除了Tkinter之外,为了能让界面有漂亮的背景,我们也导入PIL用于图像处理,以及导入其它一些包,比如time,random和math。它们能让我们更容易的控制烟花粒子的运动轨迹。
Tkinter应用的基本设置如下:
root = tk.Tk()
为了能初始化Tkinter,我们必须创建一个Tk()根部件(root widget),它是一个窗口,带有标题栏和由窗口管理器提供的其它装饰物。该根部件必须在我们创建其它小部件之前就创建完毕,而且只能有一个根部件。
w = tk.Label(root, text="Hello Tkinter!")
这一行代码包含了Label部件。该Label调用中的第一个参数就是父窗口的名字,即我们这里用的"根”。关键字参数"text”指明显示的文字内容。你也可以调用其它小部件:Button,Canvas等等。
w.pack()
root.mainloop()
接下来的这两行代码很重要。这里的打包方法是告诉Tkinter调整窗口大小以适应所用的小部件。窗口直到我们进入Tkinter事件循环,被root.mainloop()调用时才会出现。在我们关闭窗口前,脚本会一直在停留在事件循环。
将烟花绽放转译成代码
现在我们设计一个对象,表示烟花事件中的每个粒子。每个粒子都会有一些重要的属性,支配了它的外观和移动状况:大小,颜色,位置,速度等等。
Ⅳ 请问以下Python代码(第一个图)如何修改使其实现第二个图中代码的功能谢谢!
图一的代码应该会报错吧;for 循环的c值是个字符串;不存在s[c]这种形式;可以改下:
n =s[int(c)]试试;
还有输入的值如果不是0~9;不会经过while;那输出的n就是输入时的n
Ⅵ 求助编程大神,Python数据可视化,参考图一部分代码做出图二的效果。
给你个例子
import numpy as np
import matplotlib.pyplot as plt
def bar2():
plt.rcParams['font.sans-serif'] = ['SimHei']
name = ["吕布","赵云","典韦","关羽","马超","张飞","夏侯惇","太史慈"]
x_index = np.arange(len(name))
width=0.35
OP=[99,96,96,93,93,92,90,89]
HP=[70,95,70,83,88,70,75,78]
plt.bar(x_index,OP,width=width,label="攻击力")
plt.bar(x_index + width, HP, width=width, label="体力")
plt.xlabel("武将")
plt.ylabel("能力值")
plt.title("三国志武将分析")
plt.legend()
plt.xticks(ticks=x_index,labels=name)
plt.show()
bar2()
Ⅶ 求python代码,可以表示这个图形
importturtleast
colors=['red','orange','blue','yellow']
radius=list(range(20,200,15))
ori=[45,135,225,315]
foriinrange(0,4):
t.pencolor(colors[i])
t.setheading(ori[i])
forjinradius:
t.circle(j)
其他的修改一下参数就好了
Ⅷ 怎么用python的turtle库画出这个图案,要代码
import turtle as t
def quad(color):
t.begin_fill()
t.color(color)
t.forward(100)
t.left(36)
t.forward(100)
t.left(36*4)
t.forward(100)
t.left(36)
t.forward(100)
t.end_fill()
t.left(36*3)
for i in range(10):
if i%2:
quad('#99c8de')
else:
quad('#e5b9c4')
两三年没碰海龟了,觉得没啥用,看你赏金又提了就回去学了学
Ⅸ Python作图程序
实战小程序:画出y=x^3的散点图
样例代码如下:
[python]view plain
#coding=utf-8
importpylabasy#引入pylab模块
x=y.np.linspace(-10,10,100)#设置x横坐标范围和点数
y.plot(x,x*x*x,'or')#生成图像
ax=y.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
ax.set_yticks([-1000,-500,500,1000])
y.xlim(x.min(),x.max())#将横坐标设置为x的最大值和最小值
y.show()#显示图像
[python]view plain
importpylabasy
[python]view plain
y.np.linspace(-10,10,100)
举例:
[python]view plain
>>>np.linspace(2.0,3.0,num=5)
array([2.,2.25,2.5,2.75,3.])
[python]view plain
y.plot(x,x*x*x,'or')#生成图像
'r'可设置颜色为红色,基本上和matlab的操作很像。
[python]view plain
y.xlim(x.min(),x.max())
Ⅹ 怎么用Python制作一个好玩炫酷的GIF动态图
importsys
importnumpyasnp
importmatplotlib.pyplotasplt
frommatplotlib.animationimportFuncAnimation
fig,ax=plt.subplots()
fig.set_tight_layout(True)
#询问图形在屏幕上的大小和DPI(每英寸点数)
#注意当把图形保存为文件时,需要为此单独再提供一个DPI
print('figsize:{0}DPI,sizeininches{1}'.format(
fig.get_dpi(),fig.get_size_inches()))
#绘制一个保持不变(不会被重新绘制)的散点图以及初始直线
x=np.arange(0,20,0.1)
ax.scatter(x,x+np.random.normal(0,3.0,len(x)))
line,=ax.plot(x,x-5,'r-',linewidth=2)
defupdate(i):
label='timestep{0}'.format(i)
print(label)
#更新直线和轴(用一个新X轴标签)
#以元组形式返回这一帧需要重新绘制的物体
line.set_ydata(x-5+i)
ax.set_xlabel(label)
returnline,ax
if__name__=='__main__':
#会为每一帧调用Update函数
#这里FunAnimation设置一个10帧动画,每帧间隔200ms
anim=FuncAnimation(fig,update,frames=np.arange(0,10),interval=200)
iflen(sys.argv)>1andsys.argv[1]=='save':
anim.save('line.gif',dpi=80,writer='imagemagick')
else:
#Plt.show()会一直循环动画
plt.show()
可以生成下面这种图