Example #1
0
class ORBDetector(Detector):
    def __init__(self):
        Detector.__init__(self)
        self.ORB = ORB_create()

    def __repr__(self):
        return "ORBDetector(ORB={ORB})".format(ORB=self.ORB)

    def detect(self, image):
        keypoints = self.ORB.detect(image.cv_image, None)
        keypoints, descriptors = self.ORB.compute(image.cv_image, keypoints)
        return keypoints, descriptors
class OrbFeature2D:
    def __init__(self, num_features=2000, scale_factor=1.2, num_levels=8):
        print('Using Orb Feature 2D')
        self.orb_extractor = ORB_create(num_features, scale_factor, num_levels)

    # extract keypoints
    def detect(self, img):
        # detect
        kps_tuples = self.orb_extractor.detect(img)
        # convert keypoints
        kps = [cv2.KeyPoint(*kp) for kp in kps_tuples]
        return kps

    def detectAndCompute(self, img):
        #detect and compute
        kps, des = self.orb_extractor.detectAndCompute(img, None)
        return kps, des
Example #3
0
	#frame = cv.resize(frame, (320, 480))
	features = fast.detect(frame, None)

	#split channels
	Ch0 = frame[:,:, 0]
	Ch1 = frame[:,:, 1]
	Ch2 = frame[:,:, 2]

	if len(features) < 1:
		#average frames
		intCh0 = np.mean(Ch0)
		intCh1 = np.mean(Ch1)
		intCh2 = np.mean(Ch2)
	else:		
		intCh0 = len(fast.detect(Ch0, None))
		intCh1 = len(orb.detect(Ch1, None))
		intCh2 = len(blob.detect(Ch2, None))
		
	#initialise seed
	#				R					G					B
	intSeed = int(intCh0) << 32 | int(intCh1) << 16 | int(intCh2) << 0
	
	letter = 32 + ((intSeed%126) - 32)
	#print(letter)
	
	#add letter to array 
	strPassword += str(chr(letter))
	waitKey(1)

	arryPlotX[letter] += 1
	arryFastStdDev[intCount] = intCh0
Example #4
0
def FeatureCrypt(intLength=32, intCamLoc=0):
    #imports
    try:
        import numpy as np
        from datetime import datetime
        from cv2 import (FastFeatureDetector_create, ORB_create,
                         SimpleBlobDetector_create, VideoCapture, waitKey,
                         destroyAllWindows, CAP_DSHOW)
    except:
        print("Imports failed")
    #camera setup
    try:
        cam = VideoCapture(intCamLoc, CAP_DSHOW)
    except:
        cam = "Camera setup failed"

    intCount = 0
    intPwdLength = intLength
    strPassword = ""

    fast = FastFeatureDetector_create()
    orb = ORB_create()
    blob = SimpleBlobDetector_create()

    print(datetime.now())

    for intCount in range(0, intPwdLength):
        #collect frame
        ret, frame = cam.read()
        #frame = cv.resize(frame, (320, 480))
        features = fast.detect(frame, None)

        #split channels
        Ch0 = frame[:, :, 0]
        Ch1 = frame[:, :, 1]
        Ch2 = frame[:, :, 2]

        #ensure not null or empty
        if len(features) < 1:
            #average frames
            intCh0 = np.mean(Ch0)
            intCh1 = np.mean(Ch1)
            intCh2 = np.mean(Ch2)
        else:
            intCh0 = len(fast.detect(Ch0, None))
            intCh1 = len(orb.detect(Ch1, None))
            intCh2 = len(blob.detect(Ch2, None))

        #initialise seed
        #				R					G					B
        intSeed = int(intCh0) << 32 | int(intCh1) << 16 | int(intCh2) << 0

        letter = 32 + ((intSeed % 126) - 32)

        #add letter to array
        strPassword += str(chr(letter))
        waitKey(1)

    cam.release()
    destroyAllWindows()

    return strPassword