- %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)