def makeSubfolders(directories):
    printMessage('Putting images in subfolders...')
    for directory in directories:
        if os.path.exists(getFileName(directory)):
            print('Path exists')
        else:
            os.mkdir(getFileName(directory))
            temp = directory.split('\\')
            temp.append(temp[len(temp) - 1])
            temp[len(temp) - 2] = getFileName(temp)
            temp = '\\'.join(temp)
            print(temp)

            cv2.imwrite(temp, cv2.imread(directory))
            os.remove(directory)
def maskingDemo(directory):
    names, images, masks, backgrounds = getNamesImagesMasksBackgrounds(
        directory)

    # remove 'Mask' images so there's no repeats
    names2, images2 = [], []
    for name, image in zip(names, images):
        if 'Mask' not in name[-1]:
            names2.append(name)
            images2.append(image)
    names = names2
    images = images2

    for name, image in zip(names, images):
        extension = getFileExtension(name[-1])
        last_name = name.pop(-1)
        last_name = getFileName(last_name)
        name.append(last_name)
        name = '\\'.join(name) + ' Mask' + extension
        print(name)

        image = cv2.resize(image,
                           dsize=(90, 67),
                           interpolation=cv2.INTER_CUBIC)
        roughness_image = getRoughnessImage(image=image, mode='squaring')
        _, thresh = cv2.threshold(roughness_image, 20, 255, cv2.THRESH_BINARY)
        thresh_blurred = cv2.medianBlur(thresh, 9)
        _, final_mask = cv2.threshold(thresh_blurred, 100, 255,
                                      cv2.THRESH_BINARY)
        final_mask = cv2.cvtColor(final_mask, cv2.COLOR_BGR2GRAY)
        final_mask = cv2.resize(final_mask,
                                dsize=(450, 338),
                                interpolation=cv2.INTER_CUBIC)
        _, final_mask = cv2.threshold(final_mask, 200, 255, cv2.THRESH_BINARY)
        cv2.imwrite(name, final_mask)
Esempio n. 3
0
def decryptWindow(N=None, e=None, d=None):
    sg.theme('Dark Blue 3')

    layout = [[sg.T("Decrypt a Message")], [sg.Multiline(key="-MessIn-")],
              [sg.B("Decrypt Message")], [sg.T("Decrypt a File")],
              [sg.In(key="-FileName-"),
               sg.FileBrowse()], [sg.B("Decrypt File")]]
    window = sg.Window('RSA Encryptor', layout)
    rsaDecrypt = rsa.RSAObj(N=N, e=e, d=d)
    while True:
        event, values = window.read()
        if event == sg.WIN_CLOSED or event == 'Exit':
            rsaDecrypt.clearDictionaries()
            window.close()
            break
        if event == "Decrypt Message":
            rsaDecrypt.getMessage(values["-MessIn-"])
            decryptedMess = rsaDecrypt.decrypteMess()
            layoutMess = [[sg.Multiline(default_text=decryptedMess)]]
            sg.Window('RSA Encryptor', layoutMess).read(close=True)

        elif event == "Decrypt File":

            pathIn = values["-FileName-"]
            fileName, isText, pathOut, dummy = getFileName(pathIn)

            rsaDecrypt.setPathIn(pathIn)
            rsaDecrypt.setPathOut(pathOut)
            if not isText:
                rsaDecrypt.setBinaryOn()
            rsaDecrypt.decryptFile(fileName)

            layoutMess = [[sg.Text("Decryption Successful!!!")]]
            sg.Window('RSA Encryptor', layoutMess).read(close=True)
def splitImages(directories, delete_originals=True):
    printMessage('Splitting images...')
    width = 450
    height = 338

    for directory in directories:
        image = cv2.imread(directory)
        for i in range(10):
            for j in range(10):
                if (height * (i + 1)) <= image.shape[0] and (width * (j + 1)) <= image.shape[1]:
                    cv2.imwrite(
                        getFileName(directory) + ' i=' + str(i) + ', j= ' + str(j) + getFileExtension(directory),
                        image[height * i:height * (i + 1), width * j:width * (j + 1)])
                    print(getFileName(directory) + ' i=' + str(i) + ', j= ' + str(j) + getFileExtension(directory))
        if delete_originals:
            os.remove(directory)
    return
def makeMasksAndBackgrounds(directories, mask_minimum_percent):
    printMessage('Creating masks and backgrounds...')
    counter = 0
    count = len(directories)
    for directory in directories:
        image = cv2.imread(directory)
        counter += 1
        print(directory + ' (' + str(counter) + '/' + str(count) + ')')
        backup_image = image.copy()

        directory = directory.split('\\')
        extension = getFileExtension(directory[-1])
        last_name = directory.pop(-1)
        last_name = getFileName(last_name)
        directory.append(last_name)
        directory = '\\'.join(directory)

        final_mask, contours = getMasks(image)

        for i in range(len(contours)):
            contour = contours[i]
            if cv2.contourArea(contour) / (backup_image.shape[0] * backup_image.shape[1]) > mask_minimum_percent:
                mask = np.zeros(image.shape, np.uint8)
                mask = cv2.fillPoly(mask, pts=[contour], color=(255, 255, 255))

                green_image = image.copy()
                for a in range(image.shape[0]):
                    for j in range(image.shape[1]):
                        if mask[a, j][0] == 255 and mask[a, j][1] == 255 and mask[a, j][2] == 255:
                            green_image[a, j] = (70, 170, 35)

                cv2.imwrite(directory + ' Mask ' + str(i) + extension, green_image)

        green_background = greenifyImage(backup_image, cv2.bitwise_not(final_mask))
        cv2.imwrite(directory + ' Background' + extension, green_background)
    return