Skip to content

Instantly share code, notes, and snippets.

View cipher982's full-sized avatar
⌨️
Getting back in the rhythm

David Rose cipher982

⌨️
Getting back in the rhythm
View GitHub Profile
@cipher982
cipher982 / brownian_model_animate.py
Last active July 3, 2023 16:03
Brownian Motion 2d animated plot
"""
A simple example of an animated Brownian motion plot
By: David Rose
Date : 10/9/2017
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
@cipher982
cipher982 / chart_lines_animation.py
Last active October 9, 2017 20:55
Animation of random time-series chart movements
"""
Video animation of stock ticker charts to represent randomness
By: David Rose
Date : 10/9/2017
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from itertools import cycle
@cipher982
cipher982 / brownian_model_grid.py
Last active October 9, 2017 20:54
5x5 grid of 1000 step 2d motion
"""
Plot out grid of 5x5 brownian motion 2D plots
By: David Rose
Date : 10/9/2017
"""
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import random
@cipher982
cipher982 / Monte_Carlo_Area.py
Last active October 9, 2017 20:54
Estimation of area of a 2D circle using brute force monte carlo estimation
"""
Video animation of Monte Carlo estimation of a circle's area.
The function (x**2 + y**2 + r**2) can be changed around to create other shapes of choice.
By: David Rose
Date : 10/9/2017
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
@cipher982
cipher982 / toCalibrate.py
Created November 8, 2017 20:30
camera calibration in opencv
def toCalibrate(img,nx,ny):
objpoints = []
imgpoints = []
objp = np.zeros((nx*ny, 3), np.float32)
objp[:,:2] = np.mgrid[0:nx,0:ny].T.reshape(-1,2) # x,y coordinates
# Find chessboard corners
ret, corners= cv2.findChessboardCorners(img, (nx,ny), None)
# If found, draw corners
@cipher982
cipher982 / toWarp.py
Created November 8, 2017 21:01
opencv warp transform
def toWarp(img,src,dst):
# Grab the image shape
if len(np.shape(img)) > 2:
img_size = (toGray(img).shape[1], toGray(img).shape[0])
else:
img_size = (img.shape[1], img.shape[0])
#im2 = img.reshape(img.shape[0], img.shape[1])
plt.suptitle('Before Warped', fontsize=14, fontweight='bold')
@cipher982
cipher982 / toBinary.py
Created November 8, 2017 21:06
opencv binary transformation lane tracking
# for a given sobel kernel size and threshold values
def toMagSobel(img, sobel_kernel=3, mag_thresh=(0, 255)):
# Convert to grayscale
if len(np.shape(img)) > 2:
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
else:
gray = img
# Take both Sobel x and y gradients
sobelx = cv2.Sobel(gray, cv2.CV_64F, 1, 0, ksize=sobel_kernel)
sobely = cv2.Sobel(gray, cv2.CV_64F, 0, 1, ksize=sobel_kernel)
@cipher982
cipher982 / binary_lane_histogram.py
Created November 8, 2017 21:12
histogram lane plot pixels
plt.suptitle('After Sobel Binary', fontsize=14, fontweight='bold')
plt.imshow(step2)
plt.show()
histogram = np.sum(step2[step2.shape[0]//2:,:], axis=0)
plt.suptitle('Histogram of Pixels', fontsize=14, fontweight='bold')
plt.plot(histogram)
plt.show()
@cipher982
cipher982 / regression_tracking.py
Last active November 8, 2017 21:29
Using regression to track lane lines from a camera
def regressionLanesTracker(src):
binary_warped = src
# Assuming you have created a warped binary image called "binary_warped"
# Take a histogram of the bottom half of the image
histogram = np.sum(binary_warped[int(binary_warped.shape[0]/2):,:], axis=0)
# Create an output image to draw on and visualize the result
out_img = np.dstack((binary_warped, binary_warped, binary_warped))*255
# Find the peak of the left and right halves of the histogram
# These will be the starting point for the left and right lines
@cipher982
cipher982 / polygon_overlay.py
Created November 8, 2017 21:31
overlay polygon on binary warped image python opencv
"""
Add polygon and Overlay and Warp
"""
def polygonOverlay(src):
binary_warped = src
# Create an image to draw the lines on
warp_zero = np.zeros_like(binary_warped).astype(np.uint8)
color_warp = np.dstack((warp_zero, warp_zero, warp_zero))