def select_roi(image=None): image = get_image(image) roi = image[2200:2500, 1500:1700] print(roi) # Cropped and pasted a region in another part of image image[100:400, 100:300] = roi display_image(image)
def display_channel(image=None, channel=0): image = get_image(image) img_copy = image.copy() for i in range(0, 3): if i == channel: continue img_copy[:, :, i] = 0 display_image(img_copy)
def image_transition(img, prev_img): display_image(prev_img, wait_key=3000, destroy_windows=False) img = cv2.resize(img, (1600, 900)) prev_img = cv2.resize(prev_img, (1600, 900)) print("resized images") for alpha in range(0, 6): mix = cv2.addWeighted(prev_img, (5 - alpha) / 5.0, img, alpha / 5.0, 0) display_image(mix, wait_key=50, destroy_windows=False)
def open_cv_logo(img=None): img = get_image(img) img = cv2.ellipse(img, (200, 100), (50, 50), 145, 250, 0, (0, 0, 255), 50) # Red img = cv2.ellipse(img, (120, 220), (50, 50), 0, 250, 0, (0, 255, 0), 50) # Green img = cv2.ellipse(img, (280, 220), (50, 50), 320, 250, 0, (255, 0, 0), 50) # Blue display_image(img)
def slideshow(dir_path): files = get_files_in_folder(dir_path) prev_img = None for file_ in files: # Display only jpg files if file_.endswith(".jpg"): img = cv2.imread(os.path.join(dir_path, file_)) if prev_img is not None: print("transitioning image: {}".format(file_)) image_transition(img, prev_img) else: print("displaying image: {}".format(file_)) display_image(img, wait_key=2000, destroy_windows=False) prev_img = img else: print("File: {} will not be displayed".format(file_))
def paste_logo_over_image(img1, img2): # Creating region of interest rows, cols, channels = img2.shape roi = img1[0:rows, 0:cols] # Create mask of logos and its inverse mask. img2gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY) ret, mask = cv2.threshold(img2gray, 10, 255, cv2.THRESH_BINARY) # This will enhance contrast thus showcasing logo in white inv_mask = cv2.bitwise_not(mask) # Blackout area of logo in ROI img1_bg = cv2.bitwise_and(roi, roi, mask=inv_mask) img2_fg = cv2.bitwise_and(img2, img2, mask=mask) # Put log in image dst = cv2.add(img1_bg, img2_fg) img1[0:rows, 0:cols] = dst display_image(img1)
def splitting_channels(image=None): image = get_image(image) b, g, r = cv2.split(image) print(b.shape) # Displaying only a channel will display a grey image display_image(b)