本文整理汇总了Python中imutils.video方法的典型用法代码示例。如果您正苦于以下问题:Python imutils.video方法的具体用法?Python imutils.video怎么用?Python imutils.video使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类imutils
的用法示例。
在下文中一共展示了imutils.video方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: start_capture
# 需要导入模块: import imutils [as 别名]
# 或者: from imutils import video [as 别名]
def start_capture(self, height=None, width=None, usingPiCamera=IS_RASPBERRY_PI, ):
import imutils
from imutils.video import VideoStream
resolution = (self.height, self.width)
if height:
if width:
resolution = (height, width)
print("Camera Resolution:", resolution)
cf = VideoStream(usePiCamera=usingPiCamera,
resolution=resolution,
framerate=30).start()
self.current_frame = cf
time.sleep(2)
if not usingPiCamera:
frame = imutils.resize(self.current_frame.read(), width=resolution[0], height=resolution[1])
# Stream started, call current_frame.read() to get current frame
示例2: start_capture
# 需要导入模块: import imutils [as 别名]
# 或者: from imutils import video [as 别名]
def start_capture(self, height=None, width=None, usingPiCamera=IS_RASPBERRY_PI, ):
import imutils
from imutils.video import VideoStream
resolution = (self.height, self.width)
if height:
if width:
resolution = (height, width)
cf = VideoStream(usePiCamera=usingPiCamera,
resolution=resolution,
framerate=32).start()
self.current_frame = cf
time.sleep(2)
if not usingPiCamera:
frame = imutils.resize(self.current_frame.read(), width=resolution[0])
# Stream started, call current_frame.read() to get current frame
示例3: get_frame
# 需要导入模块: import imutils [as 别名]
# 或者: from imutils import video [as 别名]
def get_frame(vid_stream, stream):
"""grab the current video frame"""
frame = vid_stream.read()
# handle the frame from VideoCapture or VideoStream
frame = frame[1] if stream else frame
# if we are viewing a video and we did not grab a frame,
# then we have reached the end of the video
if frame is None:
return None
else:
frame = imutils.resize(frame, width=600)
return frame
示例4: __init__
# 需要导入模块: import imutils [as 别名]
# 或者: from imutils import video [as 别名]
def __init__(self, video_path,
topic,
topic_partitions=8,
use_cv2=False,
pub_obj_key="original",
group=None,
target=None,
name=None,
verbose=False,
rr_distribute=False):
"""Video Streaming Producer Process Class. Publishes frames from a video source to a topic.
:param video_path: video path or url
:param topic: kafka topic to publish stamped encoded frames.
:param topic_partitions: number of partitions this topic has, for distributing messages among partitions
:param use_cv2: send every frame, using cv2 library, else will use imutils to speedup training
:param pub_obj_key: associate tag with every frame encoded, can be used later to separate raw frames
:param group: group should always be None; it exists solely for compatibility with threading.
:param target: Process Target
:param name: Process name
:param verbose: print logs on stdout
:param rr_distribute: use round robin partitioner, should be set same as consumers.
"""
super().__init__(group=group, target=target, name=name)
# URL for streaming video
self.video_path = video_path
# TOPIC TO PUBLISH
self.frame_topic = topic
self.topic_partitions = topic_partitions
self.camera_num = int(re.findall(r"StreamVideo-([0-9]*)", self.name)[0])
self.use_cv2 = use_cv2
self.object_key = pub_obj_key
self.verbose = verbose
self.rr_distribute = rr_distribute
示例5: transform
# 需要导入模块: import imutils [as 别名]
# 或者: from imutils import video [as 别名]
def transform(frame, frame_num, object_key="original", camera=0, verbose=False):
"""Serialize frame, create json message with serialized frame, camera number and timestamp.
:param frame: numpy.ndarray, raw frame
:param frame_num: frame number in the particular video/camera
:param object_key: identifier for these objects
:param camera: Camera Number the frame is from
:param verbose: print out logs
:return: A dict {"frame": string(base64encodedarray), "dtype": obj.dtype.str, "shape": obj.shape,
"timestamp": time.time(), "camera": camera, "frame_num": frame_num}
"""
frame = imutils.resize(frame, width=400)
if verbose:
# print raw frame size
print("\nRAW ARRAY SIZE: ", sys.getsizeof(frame))
# serialize frame
frame_dict = np_to_json(frame.astype(np.uint8), prefix_name=object_key)
# Metadata for frame
message = {"timestamp": time.time(), "camera": camera, "frame_num": frame_num}
# add frame and metadata related to frame
message.update(frame_dict)
if verbose:
# print message size
print("\nMESSAGE SIZE: ", sys.getsizeof(message))
return message
示例6: webcam_main
# 需要导入模块: import imutils [as 别名]
# 或者: from imutils import video [as 别名]
def webcam_main():
print("Camera sensor warming up...")
vs = cv2.VideoCapture(0)
time.sleep(2.0)
mark_detector = MarkDetector()
# loop over the frames from the video stream
while True:
_, frame = vs.read()
start = cv2.getTickCount()
frame = imutils.resize(frame, width=750, height=750)
frame = cv2.flip(frame, 1)
faceboxes = mark_detector.extract_cnn_facebox(frame)
if faceboxes is not None:
for facebox in faceboxes:
# Detect landmarks from image of 64X64 with grayscale.
face_img = frame[facebox[1]: facebox[3],
facebox[0]: facebox[2]]
# cv2.rectangle(frame, (facebox[0], facebox[1]), (facebox[2], facebox[3]), (0, 255, 0), 2)
face_img = cv2.resize(face_img, (CNN_INPUT_SIZE, CNN_INPUT_SIZE))
face_img = cv2.cvtColor(face_img, cv2.COLOR_BGR2GRAY)
face_img0 = face_img.reshape(1, CNN_INPUT_SIZE, CNN_INPUT_SIZE, 1)
land_start_time = time.time()
marks = mark_detector.detect_marks_keras(face_img0)
# marks *= 255
marks *= facebox[2] - facebox[0]
marks[:, 0] += facebox[0]
marks[:, 1] += facebox[1]
# Draw Predicted Landmarks
mark_detector.draw_marks(frame, marks, color=(255, 255, 255), thick=2)
fps_time = (cv2.getTickCount() - start)/cv2.getTickFrequency()
cv2.putText(frame, '%.1ffps'%(1/fps_time) , (frame.shape[1]-65,15), cv2.FONT_HERSHEY_DUPLEX, 0.5, (0,255,0))
# show the frame
cv2.imshow("Frame", frame)
# writer.write(frame)
key = cv2.waitKey(1) & 0xFF
# if the `q` key was pressed, break from the loop
if key == ord("q"):
break
# do a bit of cleanup
cv2.destroyAllWindows()
vs.stop()
示例7: main
# 需要导入模块: import imutils [as 别名]
# 或者: from imutils import video [as 别名]
def main():
"""Handles inpur from file or stream, tests the tracker class"""
arg_parse = argparse.ArgumentParser()
arg_parse.add_argument("-v", "--video",
help="path to the (optional) video file")
args = vars(arg_parse.parse_args())
# define the lower and upper boundaries of the "green"
# ball in the HSV color space. NB the hue range in
# opencv is 180, normally it is 360
green_lower = (50, 50, 50)
green_upper = (70, 255, 255)
# red_lower = (0, 50, 50)
# red_upper = (20, 255, 255)
# blue_lower = (110, 50, 50)
# upper_blue = (130, 255, 255)
# if a video path was not supplied, grab the reference
# to the webcam
if not args.get("video", False):
vid_stream = VideoStream(src=0).start()
# otherwise, grab a reference to the video file
else:
vid_stream = cv2.VideoCapture(args["video"])
# allow the camera or video file to warm up
time.sleep(2.0)
stream = args.get("video", False)
frame = get_frame(vid_stream, stream)
height, width = frame.shape[0], frame.shape[1]
greentracker = Tracker(height, width, green_lower, green_upper)
# keep looping until no more frames
more_frames = True
while more_frames:
greentracker.track(frame)
frame = greentracker.draw_arrows(frame)
show(frame)
frame = get_frame(vid_stream, stream)
if frame is None:
more_frames = False
# if we are not using a video file, stop the camera video stream
if not args.get("video", False):
vid_stream.stop()
# otherwise, release the camera
else:
vid_stream.release()
# close all windows
cv2.destroyAllWindows()