def load_descriptors(bow, hashPath=HASH_PATH, withSubFolders=True, ext=DES_EXT): des_list = [] kp_list = [] folder = 0 path = "%s%s/" % (hashPath, folder) while os.path.exists(path): for imagePath in glob.glob("%s*%s" % (path, '.des')): des_list.append(imagePath) kp_list.append('%s%s.kp' % (path, im.fileName(imagePath))) if len(des_list) == FILES_CHECK: folder = -2 break folder += 1 path = "%s%s/" % (hashPath, folder) if len(des_list) == 0: print("Hash files count is empty") return [] print("Files count: %d " % len(des_list)) for n in des_list: bow.add(im.loadDesFromPath(n)) # bow.write(HASH_PATH + 'hash.bat') print("Loaded") images = [] for n in des_list: images.append('http://comicstore.cf/uploads/diamonds/%s.jpg' % im.fileName(n)) return images, kp_list
def run(self): # print "Starting " + self.name while not exitFlag: queueLock.acquire() if not workQueue.empty() and not filesQueue.full(): path = self.q.get() print "%d" % filesQueue.qsize() queueLock.release() # t1 = cv2.getTickCount() des2 = np.asarray( image.loadImageFromPath(path, cv2.IMREAD_GRAYSCALE, False), np.float32) name = image.fileName(path) # t2 = cv2.getTickCount() if len(des2) >= 2: queueLock.acquire() filesQueue.put({'n': name, 'd': des2}) if filesQueue.qsize() > WORK_THREAD_COUNT * 10: e.set() queueLock.release() # t3 = cv2.getTickCount() # time = (e2 - e1) / cv2.getTickFrequency() # print "R: %s s P: %s s" % ((t2 - t1) / cv2.getTickFrequency(), (t3 - t2) / cv2.getTickFrequency()) else: queueLock.release() time.sleep(5) print "Exiting " + self.name
def run(self): print "Starting " + self.name while not exitFlag: queueLock.acquire() if not workQueue.empty(): currQueue = self.q.get() queueLock.release() # fn = currQueue['fn'] # urls = currQueue['urls'] # kps = [] # for url in urls: # img = image.loadImageFromUrl(url, cv2.IMREAD_GRAYSCALE, True, 200) # name = image.fileName(url) # kp, des = image.keypointDesCalc(img) # kps.append(image.pack(kp, des, name)) # time.sleep(0) # image.saveKps(kps, HASH_PATH + fn + KPC_EXT) fn = currQueue['fn'] urls = currQueue['urls'] kps = [] for url in urls: img = image.loadImageFromUrl(url, cv2.IMREAD_GRAYSCALE, True, 200) name = image.fileName(url) image.keypointDesCalc(img, HASH_PATH + name) # image.saveKps(kps, HASH_PATH + fn + KPC_EXT) else: queueLock.release() print "Exiting " + self.name
def run(self): # print "Starting " + self.name while not self.event.is_set(): self.lock.acquire() if not self.queue.empty(): path = self.queue.get() self.lock.release() # t1 = cv2.getTickCount() des2 = np.asarray( image.loadImageFromPath(path, cv2.IMREAD_GRAYSCALE, False), np.float32) name = image.fileName(path) # t2 = cv2.getTickCount() if len(des2) >= 2: self.lock.acquire() self.files.append({'n': name, 'd': des2}) self.lock.release() # t3 = cv2.getTickCount() # time = (e2 - e1) / cv2.getTickFrequency() # print "R: %s s P: %s s" % ((t2 - t1) / cv2.getTickFrequency(), (t3 - t2) / cv2.getTickFrequency()) else: self.lock.release()
def run(self): i = 0 print("Starting " + self.name) while not self.event.is_set(): self.lock.acquire() if not self.workQueue.empty(): path = self.workQueue.get() self.lock.release() i += 1 des2 = image.loadImageFromPath(path, cv2.IMREAD_GRAYSCALE, False) des2 = np.asarray(des2, np.float32) if len(des2) >= 2: name = image.fileName(path) m = image.match(self.des, des2) if len(m) >= 50: self.lock.acquire() self.finds.append({'m': len(m), 'n': name}) self.lock.release() print("Matched %s file %s" % (len(m), name)) # time.sleep(2) else: self.lock.release() print("Exiting %s - %d" % (self.name, i))
def run(self): while not self.event.is_set(): if not self.task.empty(): task = self.task.get() des = im.loadDesFromPath(task, 50) if len(des) >= 2: self.files.append(im.fileName(task)) self.flann.add([des])
def process_data(threadName, q): while not exitFlag: queueLock.acquire() if not workQueue.empty(): url = q.get() queueLock.release() name2 = image.fileName(url) img2 = image.loadImageFromUrl(url) image.compare(name1, name2, img1.copy(), img2) # print "%s processing %s" % (threadName, data) else: queueLock.release()
def run(self): print("Starting " + self.name) while not exitFlag: queueLock.acquire() if not workQueue.empty(): url = self.q.get() queueLock.release() img = image.loadImageFromUrl(url, cv2.IMREAD_GRAYSCALE, False) name = image.fileName(url) image.keypointDesCalcDb(self.collection, img, name, 100) else: queueLock.release() print("Exiting " + self.name)
def run(self): print("Starting " + self.name) while not exitFlag: self.lock.acquire() if not self.queue.empty(): data = self.queue.get() self.lock.release() url = data[0] folder = '%s%s/' % (HASH_PATH, data[1]) img = image.loadImageFromUrl(url, resize=True, maxSize=800) name = image.fileName(url) image.keypointDesCalc(img, folder + name, 100, self.wlock) else: self.lock.release() print("Exiting " + self.name)
def run(self): print "Starting " + self.name queueLock.acquire() des1 = des.copy() queueLock.release() while not exitFlag: queueLock.acquire() if not workQueue.empty(): path = self.q.get() queueLock.release() des2 = image.loadImageFromPath(path, cv2.IMREAD_GRAYSCALE, False) des2 = np.asarray(des2, np.float32) name = image.fileName(path) if isinstance(des2, list) and len(des2) >= 2: m = image.match(des1, des2) if len(m) >= 50: print "Matched %s file %s" % (len(m), name) else: queueLock.release() print "Exiting " + self.name
name2 = image.fileName(url) img2 = image.loadImageFromUrl(url) image.compare(name1, name2, img1.copy(), img2) # print "%s processing %s" % (threadName, data) else: queueLock.release() url1 = '../images/M7.jpg' img1 = image.loadImageFromPath(url1) # url1 = 'http://comicstore.cf/uploads/diamonds/STK309612.jpg' # img1 = image.loadImageFromUrl(url1) name1 = image.fileName(url1) threadList = [] count = 0 while count < THREAD_COUNT: threadList.append("Thread-%d" % count) count += 1 nameList = sql.executeQuery() if len(nameList) == 0: exit(0) queueLock = threading.Lock() workQueue = Queue.Queue(1000000) threads = []
def downloadImages(): nameList = sql.allComics()[:1000] for i in nameList: img = im.loadImageFromUrl(i, color=cv2.IMREAD_COLOR, resize=False, maxSize=800) cv2.imwrite('/home/evgeniy/projects/python/open-cv/images/comics/full/%s.jpg' % im.fileName(i), img)