%matplotlib inline matplotlib.use('Agg') from __future__ import division from pylab import * import skimage from skimage import data, filters, exposure, feature, morphology from skimage.morphology import square from skimage.filters import rank from skimage.util.dtype import convert from skimage import img_as_float, img_as_ubyte #from skimage.io import Image from matplotlib.pyplot import imshow import skimage.io as io from skimage.color import rgb2hsv, hsv2rgb, rgb2gray from skimage.filters.edges import convolve from matplotlib import pylab as plt import numpy as np from numpy import array from IPython.display import display from ipywidgets import interact, interactive, fixed from IPython.core.display import clear_output import warnings warnings.simplefilter("ignore") def show_gray(img): imshow(img, cmap='gray') import os def fun(plane, coef_sobel, coef_bin, count_morph, coef_morph, coef_canny): plane = rgb2gray(plane) plane = filters.sobel(plane)#**coef_sobel binary = plane > coef_bin dilated = binary for i in range(count_morph): dilated = morphology.dilation(dilated, square(coef_morph)) eroded = dilated for i in range(count_morph): eroded = morphology.erosion(eroded, square(coef_morph)) result = eroded result = filters.rank.median(result, ones([3,3],dtype=uint8)) result = skimage.feature.canny(result, sigma=coef_canny) return filters.sobel(result) def load(coef_sobel, coef_bin, count_morph, coef_morph, coef_canny): fig, axes = plt.subplots(nrows=21, figsize=(20,20*21)) for i, ax in enumerate(axes): if(i < 10): file = os.getcwd() + '//planes/samolot0' + str(i) + '.jpg' else: file = os.getcwd() + '//planes/samolot' + str(i) + '.jpg' plane = data.load(file) result = fun(plane, coef_sobel, coef_bin, count_morph, coef_morph, coef_canny) ax.imshow(result, cmap='gray') fig.savefig('planes.pdf') load(0.6, 0.1, 2, 3, 0)