All of these implementations test library functions against manually written code, so expect slow execution times.
-
bgr2gray.pyconverts an image from BGR to Gray -
noise_denoise.pyNoisifies an image and then applies a median filter to it -
fourier-transform.pyBrings an image to the frequency domain -
fourier-filters.pyApplies multiple FFT-based filters: {gaussian,butterworth,ideal} (high,low)-pass filters -
homomorphic-filter.pyApplies some homomorphic filters -
spatial-transforms.pyApplies multiple spatial transformations (Negative, Log, Exp, Power) -
intensity-transforms.pyApplies multiple spatial intensity transforms (pw-linear, bit-plane slicing) -
histogram.pyRenders a histogram of the provided image (actual source indisplay_utils.pyinHistogram) -
image-averaging.pyAttempts to remove gaussian noise from image by averaging multiple noisy images -
laplacian.pyDoes some laplacian stuff (Image sharpening) -
spatial-filters.pyCollections of all implemented spatial filters (WIP as of yet) -
erosion-dilation.pyApplies morphological operators "erode", "dilate" and their mixups "opening mode" and "closing mode" -
ssim.pyImplements SSIM
display_utils.pyImplements a nice image layout engine:
side_by_side(LAYOUT, ...images)
# where LAYOUT is a layout descriptor:
Vertical(*elements) # stacks elements vertically
Horizontal(*elements) # stacks elements horizontally
Spacer(SIZE) # creates some empty space SIZE-wide (or long)
Tagged(TAG, LAYOUT, **options) # adds a caption to a given layout
[*INDEX] # creates a multi-channel overlay of the mentioned indices
INDEX # copies the image referenced by images[INDEX]named Matrix-like layouts can be created via nxm_matrix_view:
view = nxm_matrix_view(range(8), ['foo', 'bar'], 2, 2)
# -> A tagged matrix view
# Vertical
# Tagged(foo)
# Vertical
# Spacer(40 px)
# Vertical
# Horizontal
# 0
# 1
# Horizontal
# 2
# 3
# Tagged(bar)
# Vertical
# Spacer(40 px)
# Vertical
# Horizontal
# 4
# 5
# Horizontal
# 6
# 7