Computer Vision utilities, Cohen-Sutherland line clipping, OpenCV plot helpers for Optical Flow and Blob Analysis, AVI codec helpers
Project description
CVutils
- Author:
Michael Hirsch
- License:
MIT
- Prereq:
Misc. algorithms useful for computer vision.
Install
python setup.py develop
Fortran Build (optional)
If you want to use the Fortran Cohen-Sutherland line clipping modules directly (optional):
cd bin cmake .. make
Usage
The main difference with textbook implementations is that I return a sentinel value (NaN, None, nothing) if there’s no intersection of line with box.
Python
import morecvutils.lineclipping as lc
x3,y3,x4,y4 = lc.cohensutherland((xmin, ymax, xmax, ymin, x1, y1, x2, y2)
If no intersection, (None, None, None, None) is returned.
Fortran
lineclipping.f90 has two subroutines. Pick Ccohensutherland if you’re calling from C/C++/Python, which cannot tolerate assummed-shape arrays. It’s a slim wrapper to cohensutherland which is elemental (can handle scalar or any rank array).
Fortran programs will simply use
use lineclipping
call cohensutherland(xmin,ymax,xmax,ymin,x1,y1,x2,y2)
The arguments are:
INPUTS ------ xmin,ymax,xmax,ymin: upper left and lower right corners of box (pixel coordinates) INOUT ----- x1,y1,x2,y2: in - endpoints of line out - intersection points with box. If no intersection, all NaN
Julia
Simliar to Python, except nothing is returned if no intersection found.
cohensutherland(xmin, ymax, xmax, ymin, x1, y1, x2, y2)
Functions
function |
description |
---|---|
lineClipping.jl |
Cohen-Sutherland line clipping algorithm for Julia. Input scalars, output intersection length, or None if no intersection. |
lineclipping.f90 |
Cohen-Sutherland line clipping algorithm for Fortran. Input scalars or arrays, output intersections. |
lineClipping.py |
Cohen-Sutherland line clipping algorithm for Python. Input scalars, output intersection length, or None if no intersection. |
draw_flow() |
given a 2-D complex Numpy array of optical flow flow, draw flow vectors with arrows |
draw_hsv() |
make a colored HSV image corresponding to flow direction and intensity at each point |
connectedComponents.py |
given a binary image morphed and the blobdet from setupblob(), along with img, do connected components analysis |
OpticalFlow_Matlab_vs_Python.py |
using Horn-Schunck optical flow estimation with OpenCV in Python. Not so obvious from the docs, and with notes on how to make this match Matlab’s vision.opticalFlowHS method. Install Matlab Engine for Python |
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for morecvutils-0.9.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4f0d8cd2fce6f573d072cc8b33658616cce4d4464ebc6bfd337b2538a060d93 |
|
MD5 | cddff5ab729c2b0dfab6c76fc5a8ad0c |
|
BLAKE2b-256 | c36a7395ae207be67d3076f55210427c5c3e85a60d72b3091759cfe3bd8b6e2e |