-
Notifications
You must be signed in to change notification settings - Fork 1
/
features.py
89 lines (71 loc) · 2.11 KB
/
features.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
"""
feature extractor
"""
import numpy as np
import skimage.color
from skimage import io
from skimage.feature import hog, local_binary_pattern, corner_harris
def HOG(img_path):
"""
extract HOG feature
:param img_path:
:return:
:version: 1.0
"""
img = io.imread(img_path)
img = skimage.color.rgb2gray(img)
img = (img - np.mean(img)) / np.std(img)
feature = hog(img, orientations=8, pixels_per_cell=(16, 16), cells_per_block=(1, 1), block_norm='L2-Hys')
return feature
def LBP(img_path):
"""
extract LBP features
:param img_path:
:return:
"""
img = io.imread(img_path)
img = skimage.color.rgb2gray(img)
img = (img - np.mean(img)) / np.std(img)
feature = local_binary_pattern(img, P=8, R=0.2)
# im = Image.fromarray(np.uint8(feature))
# im.show()
return feature.reshape(feature.shape[0] * feature.shape[1])
def LBP_from_cv(img):
"""
extract LBP features from opencv region
:param img:
:return:
"""
img = skimage.color.rgb2gray(img)
img = (img - np.mean(img)) / np.std(img)
feature = local_binary_pattern(img, P=8, R=0.2)
# im = Image.fromarray(np.uint8(feature))
# im.show()
return feature.reshape(feature.shape[0] * feature.shape[1])
def HARRIS(img_path):
"""
extract HARR features
:param img_path:
:return:
:Version:1.0
"""
img = io.imread(img_path)
img = skimage.color.rgb2gray(img)
img = (img - np.mean(img)) / np.std(img)
feature = corner_harris(img, method='k', k=0.05, eps=1e-06, sigma=1)
return feature.reshape(feature.shape[0] * feature.shape[1])
def RAW(img_path):
img = io.imread(img_path)
img = skimage.color.rgb2gray(img)
img = (img - np.mean(img)) / np.std(img)
return img.reshape(img.shape[0] * img.shape[1])
def hog_from_cv(img):
"""
extract HOG feature from opencv image object
:param img:
:return:
:Version:1.0
"""
img = skimage.color.rgb2gray(img)
img = (img - np.mean(img)) / np.std(img)
return hog(img, orientations=8, pixels_per_cell=(16, 16), cells_per_block=(1, 1), block_norm='L2-Hys')