def main(): global img_height, img_width # Read in image using the imread function img = cv2.imread('./phoneimg.jpg', cv2.IMREAD_GRAYSCALE) img = cv2.blur(img, (15, 15)) detector = cv2.SimpleBlobDetector() keyPoints = detector.detect(img) im_with_keypoints = cv2.drawKeyPoints( img, keyPoints, np.array([]), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) ''' add_color_range_to_detect([0], [53]) # Detect red img_mask = get_mask(img) blobs = get_blobs(img_mask) object_positions_list = get_blob_centroids(blobs) centroid_group = get_close_centroid(object_positions_list) img_markup = img.copy() for obj_pos in centroid_group: centroid_group = np.array(obj_pos).astype(np.int32) # In case your object positions weren't numpy arrays img_markup = cv2.circle(img_markup,(centroid_group[1], centroid_group[0]),5,(0,0,0),10) #print("Object pos: " + str(obj_pos_vector)) centroid_group = get_close_centroid(object_positions_list) #print(centroid_group) cv2.imshow('orig', img) cv2.imshow('img_mask', img_mask) cv2.imshow('located', img_markup) ''' cv2.imshow("keyPoints", im_with_keypoints) cv2.waitKey(-1) # Wait until a key is pressed to exit the program cv2.destroyAllWindows() # Close all the windows
# Pepper mode num_pepper = np.ceil(amount* image.size * (1. - s_vs_p)) coords = # TODO out[coords] = 0 return out def mse(raw,recon): return ((raw-recon) **2).mean() #-----------------Lab2----------------------- ## Opencv # ColorMap cv2.applyColorMap() # Padding cv2.copyMakeBorder() #use cv2.BORDER_REFLECT # SURF cv2.xfeatures2d.SURF_create() cv2.drawKeyPoints() ## Numpy scipy # Save & load np.save(),np.load() # concatenate np.concatenate() # mean np.mean() # reciprocal np.reciprocal() # load .mat file import scipy.io as sio sio.loadmat() # Euclidean distance from scipy.spatial import distance
import numpy as np import cv2 cap = cv2.VideoCapture(1) while (True): ret, img = cap.read() gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ###Do your procecssing here### sift = cv2.SIFT() kp = sift.detect(gray, None) image = cv2.drawKeyPoints(gray, kp) ###Video frame processing ends### cv2.imshow('dst', image) delay = 1 if cv2.waitKey(delay) & 0xff == 27: break cap.release() cv2.destroyAllWindows()
#!/usr/bin/env python # -*- coding: utf-8 -*- import cv2 import numpy as np img = cv2.imread('/Users/amourlee/Desktop/convex.png') img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) sift = cv2.SIFT() kp = sift.detect(img_gray, None) img = cv2.drawKeyPoints(img_gray, kp) cv2.imshow('Image', img) cv2.waitKey(0) cv2.destroyAllWindows()
os.chdir("/Users/macintosh/Desktop") # load the image image = cv2.imread("circles.jpg", 0) cv2.imshow("Original Image", image) cv2.waitKey() # initialize the detector using the default parameters detector = cv2.SimpleBlobDetector() # detect blobs keypoints = detector.detect(image) # draw blobs on our image as red circles blank = np.zeros((1, 1)) blobs = cv2.drawKeyPoints(image, keypoints, blank, (0, 0, 255), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) number_of_blobs = len(keypoints) text = "Total Number of Blobs: " + str(len(keypoints)) cv2.putText(blobs, text, (20, 550), cv2.FONT_HERSHEY_SIMPLEX, 1, (100, 0, 255), 2) # display image with blob keypoints cv2.imshow("Blobs using default parameters", blobs) cv2.waitKey() # set out filtering parameters # initialize the parameter setting usng cv2.SimpleBlobDetector params = cv2.SimpleBlobDetector_Params() # set area filtering parameters
import cv2 import numpy as np cap = cv2.VideoCapture(0) while (cap.isOpened()): ret, frame = cap.read() frame = cv2.flip(frame, 1) roi = frame[100:900, 100:900] hsv = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV) cv2.imshow('frame', frame) fr = frame sift = cv2.xfeatures2d.SIFT_CREATE(fr, None) kp = sift.detect(fr, None) fr = cv2.drawKeyPoints(fr, kp, None) cv2.imshow('Keypoints', fr) lower_lim = np.array([0, 20, 70], dtype=np.uint8) upper_lim = np.array([20, 255, 255], dtype=np.uint8) mask = cv2.inRange(hsv, lower_lim, upper_lim) mask = cv2.GaussianBlur(mask, (5, 5), 100) cv2.imshow('mask', mask) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()