Example #1
0
    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
Example #2
0
    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])
Example #7
0
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()
Example #8
0
    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)
Example #9
0
    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)
Example #10
0
    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
Example #11
0
            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 = []
Example #12
0
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)