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)
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