You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
3.7 KiB
Python
129 lines
3.7 KiB
Python
import numpy as np
|
|
import seaborn as sns; sns.set()
|
|
|
|
# todo
|
|
|
|
# https://auth0.com/blog/image-processing-in-python-with-pillow/
|
|
# https://stackoverflow.com/questions/46385999/transform-an-image-to-a-bitmap
|
|
|
|
# text to image
|
|
# image to bitmap
|
|
# bitmap to random
|
|
# export bitmaps to a gallery
|
|
# bitmap to hardware display (no time)
|
|
|
|
|
|
|
|
# clear randomization; reassign var yong_grid hold values of original text input matrix
|
|
# add annotation to specify level of randomization
|
|
# run 100 times and save pictures
|
|
|
|
# a representation of "永" in matrix notation
|
|
|
|
|
|
yong_grid = [[0,0,0,0,1,1,0,0,0,0],
|
|
[0,0,1,1,1,1,0,0,1,0],
|
|
[0,0,0,0,0,1,0,1,0,0],
|
|
[0,0,0,0,0,1,1,0,0,0],
|
|
[0,1,1,1,1,1,1,0,0,0],
|
|
[0,0,0,1,0,1,1,0,0,0],
|
|
[0,0,1,0,0,1,0,1,0,0],
|
|
[0,1,0,0,0,1,0,0,1,0],
|
|
[0,0,0,1,0,1,0,0,0,0],
|
|
[0,0,0,0,1,1,0,0,0,0]]
|
|
|
|
print(np.matrix(yong_grid))
|
|
|
|
ax = sns.heatmap(yong_grid, annot=True, fmt="d")
|
|
plt.show()
|
|
|
|
from matplotlib import pyplot as plt
|
|
im = plt.imshow(yong_grid, cmap="copper_r")
|
|
plt.show()
|
|
|
|
# access item in matrix
|
|
# notation is [column][row]
|
|
print(yong_grid[0][4])
|
|
print(yong_grid[0][5])
|
|
|
|
twenty_p_one = [1,1,0,0,0,0,0,0,0,0]
|
|
twenty_p_zero = [0,0,1,1,1,1,1,1,1,1]
|
|
|
|
import random
|
|
import math
|
|
z_count = 0
|
|
one_count = 0
|
|
import math
|
|
for i in range(10):
|
|
for j in range(10):
|
|
if yong_grid[i][j] == 0:
|
|
# reassign
|
|
yong_grid[i][j] = random.choice(twenty_p_one)
|
|
else:
|
|
yong_grid[i][j] = random.choice(twenty_p_zero)
|
|
|
|
ax = sns.heatmap(yong_grid, annot=True, fmt="d")
|
|
|
|
# lists for 5%, 10% and 15% randomization
|
|
five_p_one = [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
|
|
five_p_zero = [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
|
|
ten_p_one = [1,0,0,0,0,0,0,0,0,0]
|
|
ten_p_zero = [0,1,1,1,1,1,1,1,1,1]
|
|
fifteen_p_one = [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
|
|
fifteen_p_zero = [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
|
|
|
|
# random image generator
|
|
# generate heatmap and save in folder
|
|
def randImg(list_zero, list_one):
|
|
z_count = 0
|
|
one_count = 0
|
|
for i in range(10):
|
|
for j in range(10):
|
|
if yong_grid[i][j] == 0:
|
|
yong_grid[i][j] = random.choice(list_zero)
|
|
else:
|
|
yong_grid[i][j] = random.choice(list_one)
|
|
ax = sns.heatmap(yong_grid, annot=True, fmt="d")
|
|
# clear randomization; reassign var yong_grid hold values of original text input matrix
|
|
|
|
# call function with 5%
|
|
# clear randomization; reassign var yong_grid hold values of original text input matrix
|
|
yong_grid = [[0,0,0,0,1,1,0,0,0,0],
|
|
[0,0,1,1,1,1,0,0,1,0],
|
|
[0,0,0,0,0,1,0,1,0,0],
|
|
[0,0,0,0,0,1,1,0,0,0],
|
|
[0,1,1,1,1,1,1,0,0,0],
|
|
[0,0,0,1,0,1,1,0,0,0],
|
|
[0,0,1,0,0,1,0,1,0,0],
|
|
[0,1,0,0,0,1,0,0,1,0],
|
|
[0,0,0,1,0,1,0,0,0,0],
|
|
[0,0,0,0,1,1,0,0,0,0]]
|
|
randImg(five_p_zero, five_p_one)
|
|
|
|
# call function with 10%
|
|
yong_grid = [[0,0,0,0,1,1,0,0,0,0],
|
|
[0,0,1,1,1,1,0,0,1,0],
|
|
[0,0,0,0,0,1,0,1,0,0],
|
|
[0,0,0,0,0,1,1,0,0,0],
|
|
[0,1,1,1,1,1,1,0,0,0],
|
|
[0,0,0,1,0,1,1,0,0,0],
|
|
[0,0,1,0,0,1,0,1,0,0],
|
|
[0,1,0,0,0,1,0,0,1,0],
|
|
[0,0,0,1,0,1,0,0,0,0],
|
|
[0,0,0,0,1,1,0,0,0,0]]
|
|
randImg(ten_p_zero, ten_p_one)
|
|
|
|
# fifteen percent
|
|
yong_grid = [[0,0,0,0,1,1,0,0,0,0],
|
|
[0,0,1,1,1,1,0,0,1,0],
|
|
[0,0,0,0,0,1,0,1,0,0],
|
|
[0,0,0,0,0,1,1,0,0,0],
|
|
[0,1,1,1,1,1,1,0,0,0],
|
|
[0,0,0,1,0,1,1,0,0,0],
|
|
[0,0,1,0,0,1,0,1,0,0],
|
|
[0,1,0,0,0,1,0,0,1,0],
|
|
[0,0,0,1,0,1,0,0,0,0],
|
|
[0,0,0,0,1,1,0,0,0,0]]
|
|
randImg(fifteen_p_zero, fifteen_p_one)
|
|
|