def compute(self, image):
directory = ''.join(random.choice(string.lowercase) for _ in range(8))
if not os.path.exists(directory):
os.makedirs(directory)
image = cv2.resize(image, self.size)
patches = []
patches.append(image)
patches.append(image[:self.patch_size, :self.patch_size])
patches.append(image[32:,32:])
patches.append(image[32:, :self.patch_size])
patches.append(image[:self.patch_size, 32:])
patches.append(image[16:-16, 16:-16])
patches.append(image[16:-16, 32:])
patches.append(image[16:-16, :self.patch_size])
patches.append(image[32:, 16:-16])
patches.append(image[:self.patch_size, 16:-16])
descriptor = np.zeros((1,4096))
for i in range(len(patches)):
filepath = os.path.join(directory, ("%d.jpg" % i))
cv2.imwrite(filepath, patches[i])
descriptor = descriptor + self.compute_oversample(filepath)
shutil.rmtree(directory)
return descriptor/len(patches)
评论列表
文章目录