def __init__(self): self.cap = cv2.VideoCapture(0) self.is_record = False self.out = None self.transformed_frame = None self.scanner = Scanner() self.cached_frame = None
def __init__(self): # Open a camera self.cap = cv2.VideoCapture(0) # Initialize video recording environment self.is_record = False self.out = None self.transformed_frame = None self.scanner = Scanner() self.cached_frame = None
class VideoCamera(object): def __init__(self): # Open a camera self.cap = cv2.VideoCapture(0) # Initializing video recording environment self.is_record = True self.out = None self.transformed_frame = None self.scanner = Scanner() self.cached_frame = None self.fourcc = "MJPG" self.frameSize = (640, 480) self.fps = 6 self.video_filename = "./temp_video.avi" self.video_writer = cv2.VideoWriter_fourcc(*self.fourcc) self.video_out = cv2.VideoWriter(self.video_filename, self.video_writer, self.fps, self.frameSize) def __del__(self): self.cap.release() def get_video_frame(self): ret, frame = self.cap.read() if ret: frame, _ = self.scanner.detect_edge(frame) self.cached_frame = frame ret, jpeg = cv2.imencode('.jpg', frame) self.video_out.write(frame) return jpeg.tobytes() else: return None def capture_frame(self): ret, frame = self.cap.read() if ret: _, frame = self.scanner.detect_edge(frame, True) ret, jpeg = cv2.imencode('.jpg', frame) self.transformed_frame = jpeg.tobytes() else: return None def get_cached_frame(self): return self.cached_frame def get_image_frame(self): return self.transformed_frame
def __init__(self): # Open a camera self.cap = cv2.VideoCapture(0) # Initializing video recording environment self.is_record = True self.out = None self.transformed_frame = None self.scanner = Scanner() self.cached_frame = None self.fourcc = "MJPG" self.frameSize = (640, 480) self.fps = 6 self.video_filename = "./temp_video.avi" self.video_writer = cv2.VideoWriter_fourcc(*self.fourcc) self.video_out = cv2.VideoWriter(self.video_filename, self.video_writer, self.fps, self.frameSize)
class VideoCamera(object): def __init__(self): # Open a camera self.cap = cv2.VideoCapture(0) # Initialize video recording environment self.is_record = False self.out = None self.transformed_frame = None self.scanner = Scanner() self.cached_frame = None def __del__(self): self.cap.release() def get_video_frame(self): ret, frame = self.cap.read() if ret: frame, _ = self.scanner.detect_edge(frame) self.cached_frame = frame ret, jpeg = cv2.imencode('.jpg', frame) return jpeg.tobytes() else: return None def capture_frame(self): ret, frame = self.cap.read() if ret: _, frame = self.scanner.detect_edge(frame, True) ret, jpeg = cv2.imencode('.jpg', frame) self.transformed_frame = jpeg.tobytes() else: return None def get_cached_frame(self): return self.cached_frame def get_image_frame(self): return self.transformed_frame
import argparse from document import Scanner import cv2 ap = argparse.ArgumentParser() ap.add_argument("-i", "--image", required=True, help="Path to the image to be scanned") ap.add_argument("-k", "--ksize", required=False, type=int, default=5, help="Size of gaussian kernel to perform blur") args = vars(ap.parse_args()) scanner = Scanner() im = cv2.imread(args['image']) with_contours, transformed = scanner.detect_edge(im, kernel_size=args['ksize'], transform_image=True) print("Find contours of paper") cv2.imshow("Outline", with_contours) cv2.waitKey(0) cv2.destroyAllWindows() cv2.imshow("Wraped image", transformed) cv2.waitKey(0) cv2.destroyAllWindows()
import numpy as np import cv2 from document import Scanner cap = cv2.VideoCapture(2) scanner = Scanner() while(cap.isOpened()): ret, frame = cap.read() video_frame = None image_frame = None if cv2.waitKey(1) & 0xFF == ord('q'): break if ret: if cv2.waitKey(1) & 0xFF == ord('p'): video_frame, image_frame = scanner.detect_edge(frame, True) else: video_frame, _ = scanner.detect_edge(frame) if video_frame is not None: cv2.imshow("Quadrilateral", video_frame) if image_frame is not None: cv2.imshow("Transfrom", image_frame) # Release everything if job is finished cap.release() cv2.destroyAllWindows()