python从视频中获取图像,Python图像处理代码

  python从视频中获取图像,Python图像处理代码

  计算机编程语言是一种多用途语言,广泛用于脚本编写。我们可以编写计算机编程语言脚本来自动化日常事务。本文将用计算机编程语言实现获取谷歌图片和油管(国外视频网站)视频,需要的可以参考一下

  

目录
1.网络获取谷歌图像1.1谷歌_图片_下载1.2美汤1.3图片搜索2网络获取油管(国外视频网站)视频

  

1.网络获取Google图像

  

1.1 google_images_download

  计算机编程语言是一种多用途语言,广泛用于脚本编写。我们可以编写计算机编程语言脚本来自动化日常事务。假设我们要下载具有多个搜索查询的谷歌图片。我们可以自动化该过程,而不是手动进行。

  如何安装所需的模块:

  点安装谷歌图片下载

  让我们看看如何编写计算机编程语言脚本以使用计算机编程语言谷歌_图片_下载模块下载谷歌图像。

  #导入谷歌图片下载模块

  从谷歌图片下载导入谷歌图片下载

  #创建对象

  响应=Google _ images _ download。谷歌图像下载()

  搜索查询=

  [

  这款智能手机还配有一个内置指纹传感器。

  弹出式自拍相机与后置相机对齐放置。

  "就Vivo V15 Pro能够提供的存储而言

  高达6GB的内存和128GB的板载存储。,

  "这款智能手机可以使用3700毫安时的电池。",

  ]

  极好的下载图像(查询):

  #关键词是搜索查询

  #格式是图像文件格式

  #限制是要下载的图像数量

  #打印urs是打印图像文件的全球资源定位器(Uniform Resource Locator)

  #尺寸是图像大小,它可以

  #手动指定("大、中、图标")

  #纵横比表示高度与宽度的比率

  要下载的图像数量。("高、方、宽、全景")

  arguments={keywords:查询,

  格式: jpg ,

  极限 :4,

  print_urls:True,

  尺码 : 中号,

  纵横比 : 全景 }

  尝试:

  response .下载(参数)

  #处理文件未找到错误

  除了文件未找到错误:

  arguments={keywords:查询,

  格式: jpg ,

  极限 :4,

  print_urls:True,

  尺寸 : 中号 }

  #为搜索的查询提供参数

  尝试:

  #下载照片基于

  #根据给定的参数

  response .下载(参数)

  例外:

  及格

  #驱动代码

  对于阙

  ry in search_queries:

   downloadimages(query)

   print()

  输出

  

  

  注意:由于下载错误,部分图片无法打开。

  

  

1.2 BeautifulSoup

  

import re

  import requests

  from bs4 import BeautifulSoup

  from urllib.parse import urlparse

  import os

  f = open("images_flowers.txt", "w")

  res=[]

  def download_google(url):

   #url = https://www.google.com/search?q=flowers&sxsrf=ALeKk00uvzQYZFJo03cukIcMS-pcmmbuRQ:1589501547816&source=lnms&tbm=isch&sa=X&ved=2ahUKEwjEm4LZyrTpAhWjhHIEHewPD1MQ_AUoAXoECBAQAw&biw=1440&bih=740

   page = requests.get(url).text

   soup = BeautifulSoup(page, html.parser)

   for raw_img in soup.find_all(img):

   link = raw_img.get(src)

   res.append(link)

   if link:

   f.write(link +"\n")

  download_google(https://www.google.com/search?q=flowers&sxsrf=ALeKk00uvzQYZFJo03cukIcMS-pcmmbuRQ:1589501547816&source=lnms&tbm=isch&sa=X&ved=2ahUKEwjEm4LZyrTpAhWjhHIEHewPD1MQ_AUoAXoECBAQAw&biw=1440&bih=740)

  f.close()

  

  

  

1.3 pyimagesearch

  感谢 Adrian Rosebrock 编写此代码并将其公开。

  

# USAGE

  # python download_images.py --urls urls.txt --output images/santa

  # import the necessary packages

  from imutils import paths

  import argparse

  import requests

  import cv2

  import os

  # construct the argument parse and parse the arguments

  ap = argparse.ArgumentParser()

  ap.add_argument("-u", "--urls", required=True,

   help="path to file containing image URLs")

  ap.add_argument("-o", "--output", required=True,

   help="path to output directory of images")

  args = vars(ap.parse_args())

  # grab the list of URLs from the input file, then initialize the

  # total number of images downloaded thus far

  rows = open(args["urls"]).read().strip().split("\n")

  total = 0

  # loop the URLs

  for url in rows:

   try:

   # try to download the image

   r = requests.get(url, timeout=60)

   # save the image to disk

   p = os.path.sep.join([args["output"], "{}.jpg".format(

   str(total).zfill(8))])

   f = open(p, "wb")

   f.write(r.content)

   f.close()

   # update the counter

   print("[INFO] downloaded: {}".format(p))

   total += 1

   # handle if any exceptions are thrown during the download process

   except:

   print("[INFO] error downloading {}...skipping".format(p))

  # loop over the image paths we just downloaded

  for imagePath in paths.list_images(args["output"]):

   # initialize if the image should be deleted or not

   delete = False

   # try to load the image

   try:

   image = cv2.imread(imagePath)

   # if the image is `None` then we could not properly load it

   # from disk, so delete it

   if image is None:

   print("None")

   delete = True

   # if OpenCV cannot load the image then the image is likely

   # corrupt so we should delete it

   except:

   print("Except")

   delete = True

   # check to see if the image should be deleted

   if delete:

   print("[INFO] deleting {}".format(imagePath))

   os.remove(imagePath)

  

  

  

2.网络获取Youtube视频

  如何安装所需的模块:

  

pip install pytube3

  

  

import cv2

  from collections import defaultdict

  import matplotlib.pyplot as plt

  import numpy as np

  import pandas as pd

  import warnings

  from pytube import YouTube

  warnings.filterwarnings(ignore)

  video = YouTube(https://www.youtube.com/watch?v=GTkU4qj6v7g)

  # print(video.streams.all())

  print(video.streams.filter(file_extension = "mp4").all())

  # [<Stream: itag="18" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.42001E" acodec="mp4a.40.2" progressive="True" type="video">,

  # <Stream: itag="22" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.64001F" acodec="mp4a.40.2" progressive="True" type="video">,

  # <Stream: itag="137" mime_type="video/mp4" res="1080p" fps="30fps" vcodec="avc1.64001f" progressive="False" type="video">,

  # <Stream: itag="136" mime_type="video/mp4" res="720p" fps="30fps" vcodec="avc1.4d401e" progressive="False" type="video">,

  # <Stream: itag="135" mime_type="video/mp4" res="480p" fps="30fps" vcodec="avc1.4d4015" progressive="False" type="video">,

  # <Stream: itag="134" mime_type="video/mp4" res="360p" fps="30fps" vcodec="avc1.4d400d" progressive="False" type="video">,

  # <Stream: itag="133" mime_type="video/mp4" res="240p" fps="30fps" vcodec="avc1.4d400c" progressive="False" type="video">,

  # <Stream: itag="160" mime_type="video/mp4" res="144p" fps="30fps" vcodec="avc1.4d400b" progressive="False" type="video">,

  # <Stream: itag="140" mime_type="audio/mp4" abr="128kbps" acodec="mp4a.40.2" progressive="False" type="audio">]

  # 为要下载的视频的分辨率使用适当的 itag。如果您需要高分辨率视频下载,

  # 请在以下步骤中选择最高分辨率的 itag 进行下载

  print(video.streams.get_by_itag(137).download())

  # /Users/sapnasharma/Documents/github/video_clips/Akshay Kumars Fitness Mantras for a Fit India GOQii Play Exclusive.mp4

  video_path = video.title

  print(video_path)

  # "Akshay Kumars Fitness Mantras for a Fit India GOQii Play Exclusive"

  # 视频标题在名称之间添加了一个管道,因此实际名称已损坏。我稍后会修复这个错误,

  # 现在我们可以直接粘贴视频的名字来达到我们的目的。

  video_path = "Akshay Kumars Fitness Mantras for a Fit India GOQii Play Exclusive.mp4"

  # Video Capture Using OpenCV

  cap = cv2.VideoCapture(video_path)

  frame_cnt = int(cap.get(cv2.cv2.CAP_PROP_FRAME_COUNT))

  fps = cap.get(cv2.CAP_PROP_FPS)

  print(Frames in video: , frame_cnt)

  print(f"Frames per sec: {fps}")

  # Frames in video: 34249

  # Frames per sec: 25.0

  # (1)要获取整个视频的帧,请使用下面的代码块。

  # Use this for accessing the entire video

  index = 1

  for x in range(frame_cnt):

   ret, frame = cap.read()

   if not ret:

   break

   # Get frame timestamp

   frame_timestamp = cap.get(cv2.CAP_PROP_POS_MSEC)

   # fetch frame every sec

   if frame_timestamp >= (index * 1000.0): # change the value from 1000 to anyother value if not needed per second

   index = index + 2 # decides the freq. of frames to be saved

   print(f"++ {index}")

   cv2.imwrite(f"images/cv_{index}.png", frame)

   if cv2.waitKey(20) & 0xFF == ord(q):

   break

  cap.release()

  cv2.destroyAllWindows()

  # (2)要获取特定持续时间之间的帧,请使用以下代码块。

  # Use this in case frames are to be fetched within a certain time frame

  # frame_timestamp will be calculated as fps*time*1000 and set the starting index accordingly

  index = 1560

  for x in range(frame_cnt):

   ret, frame = cap.read()

   if not ret:

   break

   # Get frame timestamp

   frame_timestamp = cap.get(cv2.CAP_PROP_POS_MSEC)

   if frame_timestamp >= 1560000.0 and frame_timestamp <= 1800000.0 :

   # fetch frame every sec

   if frame_timestamp >= (index * 1000.0):

   index = index + 4 # decides the freq. of frames to be saved

   print(f"++ {index}")

   cv2.imwrite(f"images/cv_{index}.png", frame)

   if cv2.waitKey(20) & 0xFF == ord(q):

   break

  cap.release()

  cv2.destroyAllWindows()

  

  以上就是Python获取网络图片和视频的示例代码的详细内容,更多关于Python获取图片 视频的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: