Created
April 25, 2018 16:36
-
-
Save ryanleeallred/1f3da37ddef8c17420cd1518f9bcbe87 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Import skimage modules | |
from skimage import data, img_as_float | |
from skimage import exposure | |
# Lets try augmenting a cifar10 image using these techniques | |
from skimage import data, img_as_float | |
from skimage import exposure | |
# Load an example image from cifar10 dataset | |
img = images[0] | |
# Set font size for images | |
matplotlib.rcParams['font.size'] = 8 | |
# Contrast stretching | |
p2, p98 = np.percentile(img, (2, 98)) | |
img_rescale = exposure.rescale_intensity(img, in_range=(p2, p98)) | |
# Histogram Equalization | |
img_eq = exposure.equalize_hist(img) | |
# Adaptive Equalization | |
img_adapteq = exposure.equalize_adapthist(img, clip_limit=0.03) | |
#### Everything below here is just to create the plot/graphs #### | |
# Display results | |
fig = plt.figure(figsize=(8, 5)) | |
axes = np.zeros((2, 4), dtype=np.object) | |
axes[0, 0] = fig.add_subplot(2, 4, 1) | |
for i in range(1, 4): | |
axes[0, i] = fig.add_subplot(2, 4, 1+i, sharex=axes[0,0], sharey=axes[0,0]) | |
for i in range(0, 4): | |
axes[1, i] = fig.add_subplot(2, 4, 5+i) | |
ax_img, ax_hist, ax_cdf = plot_img_and_hist(img, axes[:, 0]) | |
ax_img.set_title('Low contrast image') | |
y_min, y_max = ax_hist.get_ylim() | |
ax_hist.set_ylabel('Number of pixels') | |
ax_hist.set_yticks(np.linspace(0, y_max, 5)) | |
ax_img, ax_hist, ax_cdf = plot_img_and_hist(img_rescale, axes[:, 1]) | |
ax_img.set_title('Contrast stretching') | |
ax_img, ax_hist, ax_cdf = plot_img_and_hist(img_eq, axes[:, 2]) | |
ax_img.set_title('Histogram equalization') | |
ax_img, ax_hist, ax_cdf = plot_img_and_hist(img_adapteq, axes[:, 3]) | |
ax_img.set_title('Adaptive equalization') | |
ax_cdf.set_ylabel('Fraction of total intensity') | |
ax_cdf.set_yticks(np.linspace(0, 1, 5)) | |
# prevent overlap of y-axis labels | |
fig.tight_layout() | |
plt.show() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment