main
Jan-Niclas Loosen 9 months ago
parent ec66e7d14c
commit 8e3db2af40

@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/Virtualenv" />
</content>
<orderEntry type="jdk" jdkName="C:\ProgramData\anaconda3" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<module version="4">
<component name="PyDocumentationSettings">
<option name="format" value="GOOGLE" />
<option name="myDocStringFormat" value="Google" />
</component>
</module>

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="C:\ProgramData\anaconda3" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="C:\Users\janni\anaconda3" project-jdk-type="Python SDK" />
</project>

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/UNI_Python.iml" filepath="$PROJECT_DIR$/.idea/UNI_Python.iml" />
</modules>
</component>
</project>

70
7.0.0

@ -0,0 +1,70 @@
Requirement already satisfied: ipywidgets in c:\users\janni\anaconda3\lib\site-packages (7.6.5)
Requirement already satisfied: ipykernel>=4.5.1 in c:\users\janni\anaconda3\lib\site-packages (from ipywidgets) (6.19.2)
Requirement already satisfied: ipython-genutils~=0.2.0 in c:\users\janni\anaconda3\lib\site-packages (from ipywidgets) (0.2.0)
Requirement already satisfied: nbformat>=4.2.0 in c:\users\janni\anaconda3\lib\site-packages (from ipywidgets) (5.7.0)
Requirement already satisfied: ipython>=4.0.0 in c:\users\janni\anaconda3\lib\site-packages (from ipywidgets) (8.10.0)
Requirement already satisfied: jupyterlab-widgets>=1.0.0 in c:\users\janni\anaconda3\lib\site-packages (from ipywidgets) (1.0.0)
Requirement already satisfied: widgetsnbextension~=3.5.0 in c:\users\janni\anaconda3\lib\site-packages (from ipywidgets) (3.5.2)
Requirement already satisfied: traitlets>=4.3.1 in c:\users\janni\anaconda3\lib\site-packages (from ipywidgets) (5.7.1)
Requirement already satisfied: comm>=0.1.1 in c:\users\janni\anaconda3\lib\site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.2)
Requirement already satisfied: jupyter-client>=6.1.12 in c:\users\janni\anaconda3\lib\site-packages (from ipykernel>=4.5.1->ipywidgets) (7.3.4)
Requirement already satisfied: nest-asyncio in c:\users\janni\anaconda3\lib\site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.6)
Requirement already satisfied: pyzmq>=17 in c:\users\janni\anaconda3\lib\site-packages (from ipykernel>=4.5.1->ipywidgets) (23.2.0)
Requirement already satisfied: tornado>=6.1 in c:\users\janni\anaconda3\lib\site-packages (from ipykernel>=4.5.1->ipywidgets) (6.1)
Requirement already satisfied: packaging in c:\users\janni\anaconda3\lib\site-packages (from ipykernel>=4.5.1->ipywidgets) (22.0)
Requirement already satisfied: matplotlib-inline>=0.1 in c:\users\janni\anaconda3\lib\site-packages (from ipykernel>=4.5.1->ipywidgets) (0.1.6)
Requirement already satisfied: psutil in c:\users\janni\anaconda3\lib\site-packages (from ipykernel>=4.5.1->ipywidgets) (5.9.0)
Requirement already satisfied: debugpy>=1.0 in c:\users\janni\anaconda3\lib\site-packages (from ipykernel>=4.5.1->ipywidgets) (1.5.1)
Requirement already satisfied: prompt-toolkit<3.1.0,>=3.0.30 in c:\users\janni\anaconda3\lib\site-packages (from ipython>=4.0.0->ipywidgets) (3.0.36)
Requirement already satisfied: backcall in c:\users\janni\anaconda3\lib\site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)
Requirement already satisfied: pygments>=2.4.0 in c:\users\janni\anaconda3\lib\site-packages (from ipython>=4.0.0->ipywidgets) (2.11.2)
Requirement already satisfied: pickleshare in c:\users\janni\anaconda3\lib\site-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)
Requirement already satisfied: jedi>=0.16 in c:\users\janni\anaconda3\lib\site-packages (from ipython>=4.0.0->ipywidgets) (0.18.1)
Requirement already satisfied: colorama in c:\users\janni\anaconda3\lib\site-packages (from ipython>=4.0.0->ipywidgets) (0.4.6)
Requirement already satisfied: stack-data in c:\users\janni\anaconda3\lib\site-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)
Requirement already satisfied: decorator in c:\users\janni\anaconda3\lib\site-packages (from ipython>=4.0.0->ipywidgets) (5.1.1)
Requirement already satisfied: jupyter-core in c:\users\janni\anaconda3\lib\site-packages (from nbformat>=4.2.0->ipywidgets) (5.2.0)
Requirement already satisfied: jsonschema>=2.6 in c:\users\janni\anaconda3\lib\site-packages (from nbformat>=4.2.0->ipywidgets) (4.17.3)
Requirement already satisfied: fastjsonschema in c:\users\janni\anaconda3\lib\site-packages (from nbformat>=4.2.0->ipywidgets) (2.16.2)
Requirement already satisfied: notebook>=4.4.1 in c:\users\janni\anaconda3\lib\site-packages (from widgetsnbextension~=3.5.0->ipywidgets) (6.5.2)
Requirement already satisfied: parso<0.9.0,>=0.8.0 in c:\users\janni\anaconda3\lib\site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.3)
Requirement already satisfied: attrs>=17.4.0 in c:\users\janni\anaconda3\lib\site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (22.1.0)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in c:\users\janni\anaconda3\lib\site-packages (from jsonschema>=2.6->nbformat>=4.2.0->ipywidgets) (0.18.0)
Requirement already satisfied: python-dateutil>=2.8.2 in c:\users\janni\anaconda3\lib\site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (2.8.2)
Requirement already satisfied: entrypoints in c:\users\janni\anaconda3\lib\site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (0.4)
Requirement already satisfied: pywin32>=1.0 in c:\users\janni\anaconda3\lib\site-packages (from jupyter-core->nbformat>=4.2.0->ipywidgets) (305.1)
Requirement already satisfied: platformdirs>=2.5 in c:\users\janni\anaconda3\lib\site-packages (from jupyter-core->nbformat>=4.2.0->ipywidgets) (2.5.2)
Requirement already satisfied: Send2Trash>=1.8.0 in c:\users\janni\anaconda3\lib\site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.8.0)
Requirement already satisfied: terminado>=0.8.3 in c:\users\janni\anaconda3\lib\site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.17.1)
Requirement already satisfied: jinja2 in c:\users\janni\anaconda3\lib\site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.1.2)
Requirement already satisfied: nbclassic>=0.4.7 in c:\users\janni\anaconda3\lib\site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.2)
Requirement already satisfied: prometheus-client in c:\users\janni\anaconda3\lib\site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.14.1)
Requirement already satisfied: nbconvert>=5 in c:\users\janni\anaconda3\lib\site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (6.5.4)
Requirement already satisfied: argon2-cffi in c:\users\janni\anaconda3\lib\site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.3.0)
Requirement already satisfied: wcwidth in c:\users\janni\anaconda3\lib\site-packages (from prompt-toolkit<3.1.0,>=3.0.30->ipython>=4.0.0->ipywidgets) (0.2.5)
Requirement already satisfied: pure-eval in c:\users\janni\anaconda3\lib\site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.2.2)
Requirement already satisfied: asttokens in c:\users\janni\anaconda3\lib\site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (2.0.5)
Requirement already satisfied: executing in c:\users\janni\anaconda3\lib\site-packages (from stack-data->ipython>=4.0.0->ipywidgets) (0.8.3)
Requirement already satisfied: notebook-shim>=0.1.0 in c:\users\janni\anaconda3\lib\site-packages (from nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.2.2)
Requirement already satisfied: jupyter-server>=1.8 in c:\users\janni\anaconda3\lib\site-packages (from nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.23.4)
Requirement already satisfied: defusedxml in c:\users\janni\anaconda3\lib\site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.7.1)
Requirement already satisfied: lxml in c:\users\janni\anaconda3\lib\site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.9.1)
Requirement already satisfied: jupyterlab-pygments in c:\users\janni\anaconda3\lib\site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.1.2)
Requirement already satisfied: mistune<2,>=0.8.1 in c:\users\janni\anaconda3\lib\site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.8.4)
Requirement already satisfied: nbclient>=0.5.0 in c:\users\janni\anaconda3\lib\site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.13)
Requirement already satisfied: tinycss2 in c:\users\janni\anaconda3\lib\site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.2.1)
Requirement already satisfied: bleach in c:\users\janni\anaconda3\lib\site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.1.0)
Requirement already satisfied: beautifulsoup4 in c:\users\janni\anaconda3\lib\site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (4.11.1)
Requirement already satisfied: MarkupSafe>=2.0 in c:\users\janni\anaconda3\lib\site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.1.1)
Requirement already satisfied: pandocfilters>=1.4.1 in c:\users\janni\anaconda3\lib\site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.5.0)
Requirement already satisfied: six>=1.5 in c:\users\janni\anaconda3\lib\site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets) (1.16.0)
Requirement already satisfied: pywinpty>=1.1.0 in c:\users\janni\anaconda3\lib\site-packages (from terminado>=0.8.3->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.0.10)
Requirement already satisfied: argon2-cffi-bindings in c:\users\janni\anaconda3\lib\site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (21.2.0)
Requirement already satisfied: anyio<4,>=3.1.0 in c:\users\janni\anaconda3\lib\site-packages (from jupyter-server>=1.8->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.5.0)
Requirement already satisfied: websocket-client in c:\users\janni\anaconda3\lib\site-packages (from jupyter-server>=1.8->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.58.0)
Requirement already satisfied: cffi>=1.0.1 in c:\users\janni\anaconda3\lib\site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.15.1)
Requirement already satisfied: soupsieve>1.2 in c:\users\janni\anaconda3\lib\site-packages (from beautifulsoup4->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.3.2.post1)
Requirement already satisfied: webencodings in c:\users\janni\anaconda3\lib\site-packages (from bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (0.5.1)
Requirement already satisfied: sniffio>=1.1 in c:\users\janni\anaconda3\lib\site-packages (from anyio<4,>=3.1.0->jupyter-server>=1.8->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (1.2.0)
Requirement already satisfied: idna>=2.8 in c:\users\janni\anaconda3\lib\site-packages (from anyio<4,>=3.1.0->jupyter-server>=1.8->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (3.4)
Requirement already satisfied: pycparser in c:\users\janni\anaconda3\lib\site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets) (2.21)

@ -62,7 +62,7 @@ def mysterious_transformation_parallel(data, stripes=16):
i += 1
return np.concatenate(data_new_stripes)
3
img = Image.open("lokomotive.png")
pixels = np.asarray(img, dtype=np.uint8)
@ -82,12 +82,19 @@ end_time_parallel = time.time()
execution_time_parallel = end_time_parallel - start_time_parallel
print("Execution time for parallel method:", execution_time_parallel, "seconds")
# Each time one pixel is different - don't know the reason? But this difference is negligible
num_different_pixels = np.count_nonzero(np.sum(data_new_normal != data_new_parallel, axis=-1))
print("Number of different pixels:", num_different_pixels)
img_new_normal = Image.fromarray(data_new_normal, 'RGB')
img_new_normal.save("new_normal_lokomotive.png")
img_new_parallel = Image.fromarray(data_new_normal, 'RGB')
img_new_parallel.save("new_parallel_lokomotive.png")
img1 = Image.open("new_normal_lokomotive.png")
img2 = Image.open("new_parallel_lokomotive.png")
diff_count = 0
for x in range(img1.width):
for y in range(img1.height):
if img1.getpixel((x, y)) != img2.getpixel((x, y)):
diff_count += 1
print(diff_count)

@ -1,10 +1,9 @@
import requests
import colorsys
import plotly.graph_objects as go
from PIL import Image
import numpy as np
from io import BytesIO
from matplotlib import pyplot as plt
import plotly.graph_objects as go
import time
def apply_convolution_operator(operator, image):
@ -94,5 +93,93 @@ else:
"""
class Simulation:
class Heatmap_Simulator:
k = 1
h = 2
delta_f = 0.005
cookie_size = 0.5
def __init__(self, y_size=28, x_size=28, tmp_min=0, tmp_max=1):
init_heatmap = np.zeros((y_size, x_size))
self.x_size = x_size
self.y_size = y_size
self.tmp_min = tmp_min
self.tmp_max = tmp_max
size = self.cookie_size / 2
for y in range(int(y_size * (0.5 - size)), int(y_size * (0.5 + size))):
for x in range(int(x_size * (0.5 - size)), int(x_size * (0.5 + size))):
init_heatmap[y][x] = 1
self.heatmap = init_heatmap
def simulate(self, cycles=1):
for c in range(cycles):
new_heatmap = np.zeros((self.y_size, self.x_size))
for y in range(self.y_size):
for x in range(self.x_size):
u = self.heatmap[y, x]
value = u + self.delta_f * (self.k / (1 ** 2)) * self._consider_convolution(x, y)
value = max(self.tmp_min, min(self.tmp_max, value))
new_heatmap[y][x] = value
self.heatmap = new_heatmap
def _consider_convolution(self, x, y):
top = self.heatmap[y - 1, x] if y > 0 else 0
bottom = self.heatmap[y + 1, x] if y < self.heatmap.shape[0] - 1 else 0
left = self.heatmap[y, x - 1] if x > 0 else 0
right = self.heatmap[y, x + 1] if x < self.heatmap.shape[1] - 1 else 0
center = self.heatmap[y, x]
return top + bottom + left + right + center * (-4)
def export(self):
if self.heatmap is not None:
return Heatmap_Image(self.heatmap, 0, 1)
else:
AttributeError("Heatmap is not initialized.")
class Visual_Heatmap_Simulator(Heatmap_Simulator):
def __init__(self, y_size=28, x_size=28, tmp_min=0, tmp_max=1, delay=0.5):
super().__init__(y_size, x_size, tmp_min, tmp_max)
self.delay = delay
def simulate_visual(self, cycles=100, skip=5):
for c in range(cycles):
if c != 0:
self.simulate(1)
if c % skip == 0:
self._update_plot()
print(f"Figure updated: {c}.")
def _update_plot(self):
plt.imshow(self.heatmap, cmap='viridis', interpolation='nearest')
plt.draw()
plt.pause(self.delay)
simulator = Visual_Heatmap_Simulator(28, 28, -0.5, 1)
simulator.simulate_visual(10000, 50)
class Heatmap_Image:
def __init__(self, heatmap, min_val, max_val):
self.min_val = min_val
self.max_val = max_val
x_size, y_size = heatmap.shape
colormap = np.zeros((y_size, x_size, 3), dtype=np.uint8)
for y in range(y_size):
for x in range(x_size):
colormap[y][x] = self._val_to_color(heatmap[y][x])
self.image = Image.fromarray(colormap, 'RGB')
def _val_to_color(self, value):
normalized_value = (value - self.min_val) / (self.max_val - self.min_val)
hsv_color = (0.66 - 0.66 * normalized_value, 1.0, 1.0) # Blue to Red
rgb_color = colorsys.hsv_to_rgb(*hsv_color)
scaled_rgb_color = tuple(int(c * 255) for c in rgb_color)
return scaled_rgb_color
def show(self):
self.image.show()
def save(self, file):
self.image.save(file)

Loading…
Cancel
Save