Thursday, August 26, 2021

Roulette Rotate Canvas











import tkinter as tk

from PIL import ImageTk, Image

from random import randint


win = tk.Tk()

win.geometry("452x485+0+0")


class SimpleApp(object):

  def __init__(self, master, filename):

    self.master = master

    self.filename = filename

    self.canvas = tk.Canvas(master, bg="black", width=450, height=500)

    self.canvas.place(x=0, y=10)

    self.angle = 0


  def draw(self):

    self.image = Image.open(self.filename)

    self.turn = randint(30, 390)

    self.canvas_obj = None

    self.master.after(100, self.rotate)

  

  def rotate(self):

    if self.turn > 0:

      if self.canvas_obj:

        self.canvas.delete(self.canvas_obj)

      self.tkimage = ImageTk.PhotoImage(self.image.rotate(self.angle))

      self.canvas_obj = self.canvas.create_image(227, 250, image=self.tkimage)

      self.angle = (self.angle - 1) % 360

      self.turn -= 1

      self.master.after_idle(self.rotate)


app = SimpleApp(win, '10C.png')


pic = ImageTk.PhotoImage(file="Stick.png")

lblStick = tk.Label(win, image=pic);    lblStick.place(x=0, y=0)


btn = tk.Button(win, text="Rotate", command=app.draw)

btn.place(x=400, y=450)


win.mainloop()


Tuesday, August 3, 2021

Internet Speed Test

# https://youtu.be/sPq8a1MUgr0


import speedtest


test = speedtest.Speedtest()


print("Loading server list ...")

test.get_servers() # Get list of servers available for speedtests


print("Choosing best server ...")

best = test.get_best_server()

print("Found:", best["host"], "located in", best["country"])


print("Performing download test ...")

download_result = test.download() / 1024 / 1024

print("Performing upload test ...")

upload_result = test.upload() / 1024 / 1024

ping_result = test.results.ping


print("Download speed: %.2s MBits per second" % download_result)

print("Upload speed:   %.2s MBits per second" % upload_result)

print(ping_result, "ms")


Monday, August 2, 2021

Colorize Grayscale Images / Colorise Greyscale Images

# Support files @ https://drive.google.com/drive/folders/1VftER_oapccpYpxhDOl0j_14CL0Z9Nvz?usp=sharing

# Libraries from: https://drive.google.com/drive/folders/1FaDajjtAsntF_Sw5gqF0WyakviA5l8-a

# Code from: https://www.codespeedy.com/automatic-colorization-of-black-and-white-images-using-ml-in-python/



import numpy as np

import cv2


prototxt = "colorization_deploy_v2.prototxt"

caffe_model = "colorization_release_v2.caffemodel"

pts_npy = "pts_in_hull.npy"


inputImage = "Cat.jpg"

outputImage = "CatColored.jpg"


net = cv2.dnn.readNetFromCaffe(prototxt, caffe_model) # Load model

pts = np.load(pts_npy)

 

layer1 = net.getLayerId("class8_ab")

layer2 = net.getLayerId("conv8_313_rh")

pts = pts.transpose().reshape(2, 313, 1, 1)

net.getLayer(layer1).blobs = [pts.astype("float32")]

net.getLayer(layer2).blobs = [np.full([1, 313], 2.606, dtype="float32")]


inputImage = cv2.imread(inputImage)

inputImage = cv2.cvtColor(inputImage, cv2.COLOR_BGR2GRAY) # To grayscale

inputImage = cv2.cvtColor(inputImage, cv2.COLOR_GRAY2RGB) # To RGB

cv2.imshow("GrayScale", inputImage)


# Converting the RGB image into LAB format

# Normalizing the image

normalized = inputImage.astype("float32") / 255.0

lab_image = cv2.cvtColor(normalized, cv2.COLOR_RGB2LAB) # To LAB format

resized = cv2.resize(lab_image, (224, 224))

L = cv2.split(resized)[0]  # Extract value of L for LAB image

L -= 50


# Setting input

net.setInput(cv2.dnn.blobFromImage(L))

# Finding the values of 'a' and 'b'

ab = net.forward()[0, :, :, :].transpose((1, 2, 0))

ab = cv2.resize(ab, (inputImage.shape[1], inputImage.shape[0]))


# Combining L, a, and b channels

L = cv2.split(lab_image)[0]

LAB_colored = np.concatenate((L[:, :, np.newaxis], ab), axis=2)# Combining L,a,b


RGB_colored = cv2.cvtColor(LAB_colored,cv2.COLOR_LAB2RGB)  # LAB to RGB

RGB_colored = np.clip(RGB_colored, 0, 1)  # Limit values in array

# Changing pixel intensity back to [0,255] as we scaled during pre-processing and converted pixel intensity to [0,1]

RGB_colored = (255 * RGB_colored).astype("uint8")


RGB_BGR = cv2.cvtColor(RGB_colored, cv2.COLOR_RGB2BGR)

cv2.imshow("Colorized", RGB_BGR)

cv2.imwrite(outputImage, RGB_BGR)