def DetectCorners(self): """ Detect Page Corners Args: No Args needed """ os.chdir(self.Directory) os.chdir("Cambire") for Image in glob.glob("Enhanced_*.jpg"): ImageOriginal = cv2.imread(Image, cv2.IMREAD_COLOR) GrayscaleImage = cv2.cvtColor(ImageOriginal, cv2.COLOR_BGR2GRAY) GrayscaleImage = np.float32(GrayscaleImage) cv2.imshow("Enhanced", ImageOriginal) corners = cv2.cornerHarris(GrayscaleImage, 2, 3, 1) GrayscaleImage = cv2.dilate(GrayscaleImage, None) ImageOriginal[GrayscaleImage > 0.4 * GrayscaleImage.max()] = [0,0,255] Imagename = "Cornered_" + Image cv2.imwrite(Imagename, ImageOriginal) cv2.imshow(Imagename, ImageOriginal) cv2.waitKey(0) cv2.distroyAllWindows() os.chdir("..")
def live_from_video(self, video_path): cap = cv2.VideoCapture(video_path) while cap.isOpened(): ret, image = cap.read() self.set_image(cv2.resize(image, (640, 360), interpolation=cv2.INTER_AREA)) self.detect_face() cv2.imshow('age_detection_api detection',self.image_bounding_boxes) if cv2.waitKey(5) == 27: break cap.release() cv2.distroyAllWindows()
def live_cv2(self): video_capture = cv2.VideoCapture(0) while True: if not video_capture.isOpened(): sleep(5) ret, self.image = video_capture.read() self.detect_face() cv2.imshow(self.image_bounding_boxes) if cv2.waitKey(5) == 27: break video_capture.release() cv2.distroyAllWindows()
import cv2 import numpy as np img = cv2.imread("12.png") scaled_img = cv2.resize(img, None, fx=1, fy=2) rows, cols, ch = img.shape print(rows) print(cols) matrix = np.float32([[1, 0, 50], [0, 1, 50]]) translate_img = cv2.warpAffine(img, matrix, (cols, rows)) cv2.imshow("GeoTransformation", img) cv2.imshow("scaled", scaled_img) cv2.imshow("translated", translate_img) cv2.waitKey(0) cv2.distroyAllWindows()
for n in range(0, 250, 30): cv2.rectangle(rectangle, (n, n), (500-n, 500-n), (255, 255, 0), 3) cv2.imshow('Rectangle', rectangle) cv2.waitKey(150) cv2.imwrite('rectangle.png', rectangle) # 4. Draw Ellipse ellipse = np.zeros((502, 502, 3), np.uint8) cv2.ellipse(ellipse, (250, 250), (10, 10), (30 + n * 60), 0, 360, (0, 255, 255), -1) for n in range(0, 3, 1): cv2.ellipse(ellipse, (250, 250), (200, 50), (30 + n * 60), 0, 360, (0, 255, 255), 1) cv2.imshow('Ellipse', ellipse) cv2.waitKey(200) cv2.imwrite('ellipse.png', ellipse) # 5. Draw Text text = np.zeros((502, 502, 3), np.uint8) font = cv2.FONT_HERSHEY_SIMPLEX for n in range(0, 255): cv2.putText(text, 'OpenCV', (10, 100), font, 4, (0, 0, n), 4) cv2.imshow('Draw Text', text) cv2.waitKey(10) if (ord('q') == (cv2.waitKey(0) & 0xff)): cv2.distroyAllWindows()
def display(self, image): self.img = image count = 0 #filling all dictionaries with zeros for i in range(0, 256): self.frequency[i] = 0 self.cdf[i] = 0 self.equalized[i] = 0 #setting the frequency for i in range(0, self.img.shape[0]): for j in range(0, self.img.shape[1]): self.frequency[self.img[i, j]] = self.frequency[self.img[i, j]] + 1 #deleting pixels are not in the image self.frequency = { key: value for key, value in self.frequency.items() if value != 0 } #sorting by key self.frequency = collections.OrderedDict(sorted( self.frequency.items())) #setting cdf prev_key = 0 first = True for key, value in self.frequency.items(): if first: self.cdf[key] = self.frequency[key] first = False else: self.cdf[key] = self.frequency[key] + self.cdf[prev_key] prev_key = key #deleting pixels are not in the image self.cdf = { key: value for key, value in self.cdf.items() if value != 0 } #sorting by key self.cdf = collections.OrderedDict(sorted(self.cdf.items())) first = True for key, value in self.cdf.items(): if first: min = value first = False else: top = value - min bottom = (self.img.shape[0] * self.img.shape[1]) - 1 res = (top / bottom) * 255 self.equalized[key] = int(math.floor(res)) equalized_img = np.zeros((self.img.shape[0], self.img.shape[1], 3), np.uint8) for i in range(0, equalized_img.shape[0]): for j in range(0, equalized_img.shape[1]): equalized_img[i, j] = self.equalized[self.img[i, j]] #printing for k, v in self.frequency.items(): if v != 0: print("pixel: " + str(k) + " was repeated " + str(v) + " times, CDF: " + str(self.cdf[k])) print(self.img.shape) cv2.imshow('equalized image', equalized_img) cv2.waitKey(0) cv2.distroyAllWindows()