In [15]:
#import
import matplotlib.pyplot as plt
from glob import glob
import numpy as np
import scipy.ndimage as ndimg
from skimage.filter import canny
import skimage.transform as transform
%matplotlib inline
In [27]:
def layer_mean(img2d):
img1d = img2d[img2d<255]
return img1d.mean()
def hist_max(img2d):
img1d = img2d[img2d<255]
print img1d.min()
print img1d.max()
[n, bins, patches]= plt.hist(img1d, np.arange(255))
return bins[n.argmax()]
def edge_length(img2d):
"gray input"
imgsize = float((img2d.shape[0]*img2d.shape[1]))
med_filter = ndimg.median_filter(img2d, size = (5,5))
edges = filter.canny(med_filter,3)
return edges.sum()/imgsize
def edge_sobel_h(img2d):
"gray input"
imgsize = float((img2d.shape[0]*img2d.shape[1]))
med_filter = ndimg.median_filter(img2d, size = (5,5))
edges_h = filter.hsobel(med_filter/255.)
return edges_h.sum()/imgsize
def edge_sobel_v(img2d):
"gray input"
imgsize = float((img2d.shape[0]*img2d.shape[1]))
med_filter = ndimg.median_filter(img2d, size = (5,5))
edges_v = filter.vsobel(med_filter/255.)
return edges_v.sum()/imgsize
def edge_sobel(img2d):
"gray input"
imgsize = float((img2d.shape[0]*img2d.shape[1]))
med_filter = ndimg.median_filter(img2d, size = (5,5))
edges = filter.sobel(med_filter/255.)
return edges.sum()/imgsize
def houghLine(img2d):
"gray input"
med_filter = ndimg.median_filter(img2d, size = (5,5))
edges = filter.sobel(med_filter/255.)
[H,theta,distances] = transform.hough_line(edges)
imgsize = float(len(theta)*len(distances))
return H.sum()/imgsize
In [4]:
categ = ['airplanes']
for categ_idx, subfolder in enumerate(categ):
for fileName in glob('50_categories/'+subfolder+'/*0001.jpg'):
img = ndimg.imread(fileName)
img_gray = ndimg.imread(fileName, flatten=True)
In [5]:
medfilted = ndimg.median_filter(img_gray,size=(5,5))
plt.figure()
plt.imshow(medfilted,cmap=plt.cm.gray);
In [6]:
edges = canny(medfilted/255.,3)
In [17]:
import skimage.filter as filter
sob = filter.sobel(medfilted/255.)
plt.figure()
plt.imshow(sob, cmap=plt.cm.gray)
plt.figure()
plt.hist(sob.flatten(),np.arange(100)/1000.);
In [18]:
[n,bins,patches] = plt.hist(img_gray.flatten(),np.arange(255))
plt.figure()
plt.plot(bins[:-1],n)
Out[18]:
In [19]:
bins[n.argmax()]
Out[19]:
In [163]:
np.arange(3)
Out[163]:
In [1]:
img_gray.shape
In [26]:
hist_max(img[...,0])
Out[26]:
In [ ]: