mirror of
https://github.com/wassname/scikit-image.git
synced 2026-06-30 00:49:28 +08:00
48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
"""
|
|
=====================
|
|
Local Autolevel
|
|
=====================
|
|
|
|
Local autolevel stretch local histogram between 0 and max_graylevel (e.g. 255 for 8 bit image).
|
|
The following code shows the difference between autolevel and percentile auto_level where [min,max] interval
|
|
is replaced by [p0,p1] percentiles interval
|
|
|
|
"""
|
|
import matplotlib.pyplot as plt
|
|
import numpy as np
|
|
|
|
from skimage import data
|
|
|
|
from skimage.rank import percentile_autolevel,autolevel
|
|
from skimage.morphology import disk
|
|
|
|
|
|
image = data.camera()
|
|
|
|
selem = disk(20)
|
|
loc_autolevel = autolevel(image,selem=selem)
|
|
loc_perc_autolevel0 = percentile_autolevel(image,selem=selem,p0=.00,p1=1.0)
|
|
loc_perc_autolevel1 = percentile_autolevel(image,selem=selem,p0=.01,p1=.99)
|
|
loc_perc_autolevel2 = percentile_autolevel(image,selem=selem,p0=.05,p1=.95)
|
|
loc_perc_autolevel3 = percentile_autolevel(image,selem=selem,p0=.1,p1=.9)
|
|
|
|
loc_perc_autolevel = np.hstack((loc_perc_autolevel0,loc_perc_autolevel1,loc_perc_autolevel2,loc_perc_autolevel3))
|
|
|
|
fig, axes = plt.subplots(nrows=3, figsize=(7, 8))
|
|
ax0, ax1, ax2 = axes
|
|
plt.gray()
|
|
|
|
ax0.imshow(image)
|
|
ax0.set_title('Image')
|
|
|
|
ax1.imshow(loc_autolevel)
|
|
ax1.set_title('Autolevel')
|
|
|
|
ax2.imshow(loc_perc_autolevel,vmin=0,vmax=255)
|
|
ax2.set_title('percentile autolevel 0%,1%,5% and 10%')
|
|
|
|
for ax in axes:
|
|
ax.axis('off')
|
|
|
|
plt.show()
|