def edge(): edgeFeats = EdgeHistogramFeatureExtractor() a = np.array(edgeFeats.extract(watchman.imgbank[0])) if len(watchman.imgbank) > 1: b = np.array(edgeFeats.extract(watchman.imgbank[1])) else: b = np.array(edgeFeats.extract(watchman.imgbank[0])) AandB = np.sum(np.square((a-b))) return AandB
def feature_extractor(): #Abrir arquivo que vai receber as features dos arquivos de imagens file = "image_features_train_20_10_1_Novo.arff" text_file = open(file, "a") trainPath = "C:/Python27/ARP/Dataset/train2" dirList = os.listdir(trainPath) edge = EdgeHistogramFeatureExtractor(20) for dirName in dirList: fileList = os.listdir(trainPath + '/' + dirName) maxsize = len(fileList) for i in range(0, maxsize): #print fileList[i] filePATH = (trainPath + '/' + dirName + '/' + fileList[i]) img = Image(filePATH) #Feature - Edge histogram edge_vecs = edge.extract(img) edge_fields = edge.getFieldNames() for y in range(0, edge.getNumFields()): #print edge_fields[y], '=', edge_vecs[y] text_file.write(str(edge_vecs[y]) + ",") #Feature - Hue hue = HueHistogramFeatureExtractor(10) hue_vecs = hue.extract(img) hue_fields = hue.getFieldNames() for i in range(0, hue.getNumFields()): # #print hue_fields[i], '=', hue_vecs[i] text_file.write(str(hue_vecs[i]) + ",") Morph1 = MorphologyFeatureExtractor() Morph2 = Morph1.extract(img) text_file.write(str(Morph2) + ",") text_file.write(dirName + "\n") text_file.close()
def extract_edges(image, data, slices): edgeExtractor = EdgeHistogramFeatureExtractor(bins=4) image_bins = split_image_into_slices(image, slices) data["edge-angles"] = [] data["edge-lengths"] = [] for image_bin in image_bins: edge_angles_and_lengths = edgeExtractor.extract(image_bin) data["edge-angles"] += edge_angles_and_lengths[: len(edge_angles_and_lengths) / 2] data["edge-lengths"] += edge_angles_and_lengths[len(edge_angles_and_lengths) / 2 :] return data
def EHDFeatures(image): """ Function that calculate the edge histogram of an image. Coded by An Li """ img1 = Image(image) edgeFeats = EdgeHistogramFeatureExtractor(bins=16) results = np.array(edgeFeats.extract(img1), dtype=np.float32) return results