Calculate two dimensional histogram of a given image.
Project description
im2dhist
This small piece of code is intended to help researchers, especially in field of image processing, to easily calculate two dimensional histogram of a given image.
How it works
A moving window of w*w moves through out the given image, and as its center places on each pixel, number of encounters with same and other brightness intensities is counted seperately. This package basically outputs a normalized two dimensional numpy array of brightness intensity encounters.
Installation
Run the following to install:
pip install im2dhist
Usage
from im2dhist import im2dhist
import cv2
import numpy as np
from mpl_toolkits import mplot3d
import matplotlib.pyplot as plt
def main():
image_name = 'Plane.jpg'
image = cv2.imread(image_name)
# converts rgb image to gray
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 2*w_neighboring+1 is width of the square window around each pixel, when counting neiboring pixels
# calculate 2 dimensional histogram of gray_image
v_image_2DHisteq = im2dhist(gray_image, w_neighboring=6, showProgress = True)
# plots 2D-Histogram
[K, _] = v_image_2DHisteq.shape
x = np.outer(np.arange(0, K), np.ones(K))
y = x.copy().T
# ln-ing v_image_2DHisteq makes its details more prominent.
Hist2D_ln = v_image_2DHisteq.copy()
Hist2D_ln[np.where(Hist2D_ln<=0)] = 1e-15
z = np.log(Hist2D_ln)
fig = plt.figure()
ax = plt.axes(projection='3d')
ax.plot_surface(x, y, z,cmap='viridis', edgecolor='none')
ax.set_title(f'2D-Histogram of {image_name}')
plt.show()
if __name__ == '__main__': main()
Showcase
This is a sample image Two dimensional histogram of the sample image
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
im2dhist-0.1.0.6.tar.gz
(424.6 kB
view hashes)
Built Distribution
Close
Hashes for im2dhist-0.1.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 602e6e50d3148834d1b4cc3d8d804e01200ab9a37baee7d36574aae17b10a329 |
|
MD5 | ab670a79c488c641980110b2cd86eb7b |
|
BLAKE2b-256 | 021ed475980ead00916a54e125e2e3193160c6a74428e39b5b93d1c27f4e7cd9 |