代码如下:

#!/usr/bin/env python

# -*-coding:UTF-8-*-#

from common import *

import Image, ImageFilter, math, sys, os, random

def modifyImageObj(img, matrix) :

width, height = img.size

for h in range(0, height) :

for w in range(0, width) :

pixel = matrix[h][w]

img.putpixel((w, h), pixel)

return img

def initMatrix(h, w, v = (0, 0, 0)) :

result = []

for _h in range(0, h) :

row = []

for _w in range(0, w) :

row.append(v)

result.append(row)

return result

size = (600, 600)

img = Image.new('RGB', size)

h, w = size

matrix = initMatrix(h, w, (0, 0, 0))

m = []

m.append([-0.04, 0, -0.19, -0.47, -0.12, 0.3, 0.25])

m.append([0.65, 0, 0, 0.56, 0.06, 1.56, 0.25])

m.append([0.41, 0.46, -0.39, 0.61, 0.46, 0.4, 0.25])

m.append([0.52, -0.35, 0.25, 0.74, -0.48, 0.38, 0.25])

n = 0

x, y, a, b, c, d, e, f, newx, newy = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

while n < 300000 :

r = random.uniform(0, 1)

if r <= m[0][6] :

a=m[0][0]

b=m[0][1]

c=m[0][2]

d=m[0][3]

e=m[0][4]

f=m[0][5]

elif r <= m[0][6] + m[1][6] :

a=m[1][0]

b=m[1][1]

c=m[1][2]

d=m[1][3]

e=m[1][4]

f=m[1][5]

elif r <= m[0][6] + m[1][6] + m[2][6] :

a=m[2][0]

b=m[2][1]

c=m[2][2]

d=m[2][3]

e=m[2][4]

f=m[2][5]

else :

a=m[3][0]

b=m[3][1]

c=m[3][2]

d=m[3][3]

e=m[3][4]

f=m[3][5]

newx = (a * x) + (b * y) + e

newy = (c * x) + (d * y) + f

x = newx

y = newy

matrix[(int)(400 - 100 * y)][(int)(300 + 100 * x)] = ((int)(x * 50 * r), (int)(r * 100), (int)(y * 200 * r))

n += 1

modifyImageObj(img, matrix)

img.show()

img.save('frac.jpg')

python分形算法_python 分形 | 学步园相关推荐

  1. python构建矩阵_python矩阵运算 | 学步园

    第一次看见Python的运行感觉就让我想起了matlab,于是就上网嗖嗖他在矩阵方面的运算如何,如果不想安装Matlab那么大的软件,而你又只是想计算些矩阵,python绝对够用!尤其在Linux下太 ...

  2. python 归并排序算法_python基本算法之实现归并排序(Merge sort)

    0.前言 评判一个算法的好坏的标准: 时间复杂度 空间复杂度 1.归并排序算法是什么? 冒泡排序(Bubble Sort)是一种建立在归并操作上面的一种有效的排序算法,由John von neuman ...

  3. python归并算法_python归并算法

    python数据结构与算法总结 python常用的数据结构与算法就分享到此处,本月涉及数据结构与算法的内容有如下文章: <数据结构和算法对python意味着什么?> <顺序表数据结构 ...

  4. python开发服务程序_Python 编写Windows服务程序:将Python作为Windows服务启动 | 学步园...

    Python程序作为Windows服务启动,需要安装pywin32包.下载路径: #-*- coding:utf-8 -*- import win32serviceutil import win32s ...

  5. python所有算法_Python实现的各种常见分布算法示例

    本文实例讲述了Python实现的各种常见分布算法.分享给大家供大家参考,具体如下: #-*- encoding:utf-8 -*- import numpy as np from scipy impo ...

  6. python分类算法_python数据挖掘中的分类算法有哪些?

    一直以来,对于机器学习领域,Python都是人们津津乐道的话题,大家知道我们在用python学习机器技术时候,用到的方法内容和一般情况下的是一样的吗?想必,了解过的小伙伴一定是知道有哪些的,不知道的小 ...

  7. 用python排序算法_Python - 八大排序算法

    1.序言 本文使用Python实现了一些常用的排序方法.文章结构如下: 1.直接插入排序 2.希尔排序 3.冒泡排序 4.快速排序 5.简单选择排序 6.堆排序 7.归并排序 8.基数排序 上述所有的 ...

  8. python 查找算法_python快速查找算法应用实例

    文实例讲述了Python快速查找算法的应用,分享给大家供大家参考. 具体实现方法如下: import random def partition(list_object,start,end): rand ...

  9. python迭代算法_Python实现简单的梯度下降法

    Python 实现简单的梯度下降法 机器学习算法常常可以归结为求解一个最优化问题,而梯度下降法就是求解最优化问题的一个方法. 梯度下降法(gradient descent)或最速下降法(steepes ...

最新文章

  1. phpMyAdmin FTP iptables Selinux
  2. MySQL数据库(八) 一一 数据库信息和使用序列
  3. Struts——例子
  4. jvm性能调优实战 - 38System.gcy引发的惨案
  5. 浏览器解析编码优先级
  6. HDU - 1079 Calendar Game(博弈打表sg函数)
  7. Robotium双client測试框架
  8. ASP.NET导出word实例
  9. (STTN)Learning Joint Spatial-TemporalTransformations for Video Inpainting
  10. Google 的 “行星级” cron 系统
  11. 安卓手机能用吗_手机才用两年卡的不行,是手机问题吗,想问手机最长能用几年?...
  12. python调包侠_sklearn调包侠之K-Means
  13. (过桥问题)小明一家过一座桥,过桥时是黑夜,所以必须有灯
  14. openCV学习资料整理
  15. 《Real-Time Rendering 4th Edition》读书笔记--简单粗糙翻译 第六章 纹理 Texturing
  16. PhoneApp的启动过程
  17. 人世间最纯净的友情只存在于孩童时代
  18. 计算机专业大专考试题,计算机大专考试试题1.doc
  19. 新买的笔记本电脑怎么分盘_笔记本电脑验机指南
  20. 为什么要分库分表?一个业务场景来理顺它!

热门文章

  1. 移花接木大法:新型“白利用”华晨远控木马分析
  2. 使用VSTS的Git进行版本控制(四)——在Visual Studio中管理分支
  3. 矿产资源储量报告及评审中的若干问题
  4. 学计算机电脑厚度23mm,人机工程大作业——————人机工程学电脑桌椅.doc
  5. 我听歌用 foobar2000 V.1.18 + autolyric 歌词同步
  6. 10kv电缆为什么要做耐压试验? 有什么意义吗?
  7. 出色的领导者 多普达智能最新旗舰830评测
  8. asp.net Forms身份验证
  9. amd cpu 安卓模拟器_一款完美解决AMD兼容问题的安卓模拟器
  10. WiFi基本概念(十)(网络标识 SSID和BSSID)