Skip to main content

This module attempts to enhance contrast of a given image by employing a method called weighted thresholded histogram equalization (WTHE).

Project description

PyPI Latest Release Package Status Downloads License Repository Size

imWeightedThresholdedheq

This module attempts to enhance contrast of a given image or video by employing a method called weighted thresholded histogram equalization (WTHE). This method seeks to improve on preformance of the conventional histogram equalization method by adding controllable parameters to it. By weighting and thresholding the PMF of the image before performing histogram equalization, two parameters are introduced that can be changed manually, but by experimenting on a variety of images, optimal values for both parameters are calculated (r = 0.5, v = 0.5).

You can access the article that came up with this method here.

Installation

Run the following to install:

pip install imWeightedThresholdedheq

Usage

For images

imWeightedThresholdedheq --input 'Plane.jpg' --output 'Plane-imWeightedThresholdedheq.jpg'

For videos

vid2dhisteq --input 'assets/Arctic-Convoy-With-Giant-Mack-Trucks.mp4' --output 'assets/Arctic-Convoy-With-Giant-Mack-Trucks-imWeightedThresholdedheq.mp4'

Or

import numpy as np
import cv2
from imWeightedThresholdedheq import imWTHeq

cap = cv2.VideoCapture('assets/Arctic-Convoy-With-Giant-Mack-Trucks.mp4')

# output video without sound
video_out_name = 'assets/Arctic-Convoy-With-Giant-Mack-Trucks-imWeightedThresholdedheq.mp4'
i = 0
j = 0
Wout_list = np.zeros((10))
while(cap.isOpened()):
    ret, frame = cap.read()
    if ret == False:
        break
    frame_hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
    frame_v   = frame_hsv[:, :, 2].copy()
    image_heq, Wout = imWTHeq(frame_v, Wout_list, r=0.5, v=0.5)
    Wout_list[j] = Wout
    j += 1
    if j == 10:
        j = 0
    frame_hsv[:, :, 2] = image_heq
    frame_eq = cv2.cvtColor(frame_hsv, cv2.COLOR_HSV2BGR)

    fps = cap.get(cv2.CAP_PROP_FPS)
    if i==0:
        h, w, d = frame_eq.shape
        fourcc = cv2.VideoWriter_fourcc(*'mp4v')
        video_out = cv2.VideoWriter(video_out_name, fourcc, fps, (w, h))
    video_out.write(frame_eq)

    i+=1
cv2.destroyAllWindows()
video_out.release()

Showcase

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

imWeightedThresholdedheq-1.0.2.tar.gz (223.8 kB view details)

Uploaded Source

Built Distribution

imWeightedThresholdedheq-1.0.2-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file imWeightedThresholdedheq-1.0.2.tar.gz.

File metadata

File hashes

Hashes for imWeightedThresholdedheq-1.0.2.tar.gz
Algorithm Hash digest
SHA256 d80e2f599660609177cabde779ce4ab3ad0f25c8e17fe3ffcf8af11a9c1c25e5
MD5 1e396496e9c7b42145ae08d0b046af4c
BLAKE2b-256 1f39d7437021eafab3353e682cc26332c1c1090002876fc0d0b263f7fcf416b1

See more details on using hashes here.

File details

Details for the file imWeightedThresholdedheq-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for imWeightedThresholdedheq-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 46382bd51bb2afd5a17f07deaa9265110137dc92b7052d56a681325422d65345
MD5 39da86be9642b47f4c9cbafa7f6c662e
BLAKE2b-256 23dd3c21ecaaccd7d9651c063c80c832423a045cb22b83f56ac1ab1a817606b3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page