Skip to content

Instantly share code, notes, and snippets.

Avatar

Trevor Lancon tlancon

  • DRVision Technologies
  • Houston, Texas
View GitHub Profile
@tlancon
tlancon / rip_gopro_audio.cmd
Last active Sep 29, 2020
Rips the audio from the all MP4s in the current directory to WAV. Requires FFMPEG.
View rip_gopro_audio.cmd
for /r %%f in (*MP4) do (
ffmpeg -i %%f -q:a 0 -map a "%%~nf.wav"
)
@tlancon
tlancon / reject_outliers.py
Created Jun 5, 2020
Reject outliers from a 1D signal based on a sliding window and a deviation threshold.
View reject_outliers.py
def reject_outliers(arr, window_size, threshold):
"""
Given a 1D signal, replace outliers with the average of the surrounding points.
Does the following for every point:
1. Computes the median of the sliding window
2. Computes the percentage difference between the current point and the
sliding window median
3. If that deviation exceeds the given threshold, replaces that point with
the average of the surrounding two points.
@tlancon
tlancon / InspectLine.py
Created May 28, 2020
Inspect labeled objects in an image touching either a horizontal or vertical center line. Information is printed to the console.
View InspectLine.py
import os
import numpy as np
import matplotlib.pyplot as plt
from skimage import io
from skimage.measure import regionprops
# ----------------------------------------------------------
# Input
wdir = os.path.dirname('<DIRECTORY_CONTAINING_IMAGES>')
fname = '<LABELED_IMAGE_NAME>.tif'
@tlancon
tlancon / distance_between_points.py
Created May 17, 2020
Calculate the distance between X, Y points saved arrays using NumPy's diff() function without a loop.
View distance_between_points.py
import numpy as np
x = np.array([0, 1, 2, 3, 4, 5])
y = np.array([4, 5, 6, 7, 8, 9])
displacement = np.sqrt(np.diff(x, prepend=x[0])**2 + np.diff(y, prepend=y[0])**2)
@tlancon
tlancon / napari_count_tfpn.py
Last active Feb 24, 2020
Call this function to launch a napari window with a given image to begin annotating true positives, false positives, and false negatives on the image with points layers.
View napari_count_tfpn.py
import os
import napari
from skimage.io import imread, imsave
def napari_count_tfpn(screenshot_file, point_size=20, save_screenshot=True):
"""
Opens a napari window and initializes three points layers:
- "True Positives" with green points
- "False Positives" with red points
- "False Negatives" with yellow points
@tlancon
tlancon / sarcastify.py
Last active Jul 2, 2019
Make any string sarcastic!
View sarcastify.py
def sarcastify(my_string):
"""
Returns a sarcastic version of the provided string.
Example:
>>> sarcastify('Do you really think that\'s a good idea?')
"dO YoU ReAlLy tHiNk tHaT'S A GoOd iDeA?"
Useful for arguing online or replying all to that email that accidentally
went to the whole company.
@tlancon
tlancon / us_states_dict.py
Last active May 5, 2020
Dictionary of All US States and their Abbreviations
View us_states_dict.py
# Inspired by https://gist.github.com/JeffPaine/3083347
# Access full state names using us_states.keys()
# Access all state abbreviations using us_states.values()
us_states = {
'Alabama': 'AL',
'Alaska': 'AK',
'Arizona': 'AZ',
'Arkansas': 'AR',
'California': 'CA',
'Colorado': 'CO',
@tlancon
tlancon / GetLabelAnalysisCellContents.py
Created Jul 20, 2018
Retrieves the contents of a specific cell from a tablelike-object (HxLabelAnalysis, HxSpreadSheet, etc.) in Amira/Avizo.
View GetLabelAnalysisCellContents.py
# Copy/paste into the Avizo/Amira Python console.
# Alternatively, save to a file, add that file to your path, and import.
# See docstring for usage.
def get_cell_contents(tablelike_object,row,column,table=0):
"""
Retrieves contents of cell i,j in a table through
HxSpreadSheetInterface.
You must use the object handle, not just the name of the object! For example,
to get the contents of row 4 from column 5 of a HxLabelAnalysis data object
@tlancon
tlancon / MultipleChoice.py
Created Jun 24, 2018
Compares a user's input to a list of allowable reponses and returns the keyword.
View MultipleChoice.py
def parse_response(multiple_choice, prompt=None):
"""
Splits a user's input into individual words and searches a list
of allowable responses for a unique match, then returns the word
that matches one of the options.
List comprehension syntax explained for my own reference:
1. for i in response.split() - breaks every word of response
into individual strings
2. if i in multiple_choice - searches for ALL recognized words
@tlancon
tlancon / LabelAnalysisToDataFrame.py
Created Jun 11, 2018
Converts HxLabelAnalysis or HxSpreadSheet objects to Pandas data frames in Amira/Avizo.
View LabelAnalysisToDataFrame.py
# Copy/paste into the Avizo/Amira Python console.
# Alternatively, save to a file, add that file to your path, and import.
# See docstring for usage.
def labelanalysis_to_dataframe(tablelike_object):
"""
Converts a tablelike object (HxSpreadSheet, HxLabelAnalysis, or anything with
.all_interfaces.HxSpreadSheetInterface) to a Pandas data frame with the column names intact.
You must use the object handle, not just the name of the object! For example,
to convert a HxLabelAnalysis data object named "chocolate-bar.Label-Analysis":
You can’t perform that action at this time.