Tag: Python
Terminating a Python script
import sys sys.exit()
os._exit(errorcode)
References
https://stackoverflow.com/questions/73663/terminating-a-python-script
Detect Ctrl+C in Python
#!/usr/bin/env python
import signal
import sys
def signal_handler(sig, frame):
print('You pressed Ctrl+C!')
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
print('Press Ctrl+C')
signal.pause()
References
https://stackoverflow.com/questions/1112343/how-do-i-capture-sigint-in-python
Preventing Windows OS from sleeping while your python code runs
class WindowsInhibitor:
'''Prevent OS sleep/hibernate in windows; code from:
https://github.com/h3llrais3r/Deluge-PreventSuspendPlus/blob/master/preventsuspendplus/core.py
API documentation:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa373208(v=vs.85).aspx'''
ES_CONTINUOUS = 0x80000000
ES_SYSTEM_REQUIRED = 0x00000001
def __init__(self):
pass
def inhibit(self):
import ctypes
print("Preventing Windows from going to sleep")
ctypes.windll.kernel32.SetThreadExecutionState(
WindowsInhibitor.ES_CONTINUOUS | \
WindowsInhibitor.ES_SYSTEM_REQUIRED)
def uninhibit(self):
import ctypes
print("Allowing Windows to go to sleep")
ctypes.windll.kernel32.SetThreadExecutionState(
WindowsInhibitor.ES_CONTINUOUS)
import os
osSleep = None
# in Windows, prevent the OS from sleeping while we run
if os.name == 'nt':
osSleep = WindowsInhibitor()
osSleep.inhibit()
# do slow stuff
if osSleep:
osSleep.uninhibit()
References
https://trialstravails.blogspot.com/2017/03/preventing-windows-os-from-sleeping.html
Create an Enum in Python
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
References
https://docs.python.org/3/library/enum.html
Calculate the difference between two datetime objects in Python
dateTimeDifference = dateTimeA - dateTimeB # Divide difference in seconds by number of seconds in hour (3600) dateTimeDifferenceInHours = dateTimeDifference.total_seconds() / 3600
Python String Formatting
1 –
'Hello, {}'.format(name)
Output
'Hello, Bob'
2 –
'Hey {name}, there is a 0x{errno:x} error!'.format(name=name, errno=errno)
Output
'Hey Bob, there is a 0xbadc0ffee error!'
3 –
f'Hello, {name}!'
Output
'Hello, Bob!'
Convert a PIL Image into a numpy array
pix = numpy.array(pic)
References
https://stackoverflow.com/questions/384759/how-to-convert-a-pil-image-into-a-numpy-array
Basic NumPy for working with OpenCV
Create an array from a list
my_list = [1, 2, 3] my_array = np.array(my_list)
Create an array with arrange
my_array = np.arange(0, 10) my_array2 = np.arange(0, 10, 2) # with step 2
Create an array with zeros
my_array = np.zeros((2, 3)) # default type if float my_array2 = np.zeros((2, 3), np.int32) # with type int
Create an array with ones
my_array = np.ones((10, 8), np.int32)
Create an array from random
np.random.seed(101) array1 = np.random.randint(0, 100, 10) array2=np.random.randint(0,100,10)
Max, Min, Mean
np.random.seed(101) array1 = np.random.randint(0, 100, 10) print(array1.max()) print(array1.argmax()) # index of max value print(array1.min()) print(array1.argmin()) # index of min value print(array1.mean())
Indexing an array
matrix = np.arange(0, 100).reshape(10, 10) print(matrix) print(matrix[2,3]) row = 1 col = 4 print(matrix[row,col])
Manipulating an array
matrix = np.arange(0, 100).reshape(10, 10) print(matrix) matrix[0:3, 0:3] = 0 print(matrix)
Copying an array
matrix: np.ndarray = np.arange(0, 100).reshape(10, 10) print(matrix) matrix2 = matrix.copy() matrix2[0:3, 0:3] = 0 print(matrix2)
Slicing an array
matrix = np.arange(0, 100).reshape(10, 10) print(matrix[1, :]) # whole row 1 print(matrix[:, 1]) # whole col 1 print(matrix[1, 1:4]) # row 1 from col 1 to 4 print(matrix[1:4, 1]) # col 1 from row 1 to 4 new_matrix: np.ndarray = matrix[1, :] print(new_matrix.reshape(5, 2))
Reshaping an array
np.random.seed(101) array1 = np.random.randint(0, 100, 10) print(array1) print(array1.shape) array2 = array1.reshape((2, 5)) print(array2) print(array2.shape)
Image Operations with OpenCV Python
Read Pixel
import cv2
import numpy as np
import pprint
image = cv2.imread('cow.jpg',cv2.IMREAD_COLOR)
pixel= image[55,55]
pprint.pprint(pixel)
Change Pixel
import cv2
import numpy as np
import pprint
image = cv2.imread('cow.jpg', cv2.IMREAD_COLOR)
image[55, 55] = [255, 255, 255]
pixel = image[55, 55]
pprint.pprint(pixel)
Change the color of Region of Image
import cv2
import numpy as np
import pprint
image = cv2.imread('cow.jpg', cv2.IMREAD_COLOR)
image[150:200, 100:150] = [255, 255, 255]
cv2.imshow("image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Image CharacteristicsÂ
import cv2
import numpy as np
import pprint
image = cv2.imread('cow.jpg', cv2.IMREAD_COLOR)
print(image.shape)
print(image.size)
print(image.dtype)
Copy Paste Region
import cv2
import numpy as np
import pprint
image = cv2.imread('cow.jpg', cv2.IMREAD_COLOR)
watch_face = image[200:250,107:194]
image[0:50,0:87] = watch_face
cv2.imshow('image',image)
cv2.waitKey(0)
cv2.destroyAllWindows()
References
https://pythonprogramming.net/image-operations-python-opencv-tutorial/
https://www.youtube.com/watch?v=1pzk_DIL_wo&list=PLQVvvaa0QuDdttJXlLtAJxJetJcqmqlQq&index=4
https://github.com/mhdr/OpenCV/tree/master/004