如何利用python调取摄像头

  介绍

这篇文章将为大家详细讲解有关如何利用python调取摄像头,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强>调取摄像头的实现

进口numpy np
  进口cv2
  帽=cv2.VideoCapture(0) #参数为0时调用本地摄像头;url连接调取网络摄像头;文件地址获取本地视频
  而(真正的):
  ret,?cap.read ()
  
  #灰度化
  cv2.COLOR_BGR2GRAY灰色=cv2.cvtColor(框架)
  cv2.imshow(& # 39;帧# 39;,灰色)
  
  #普通图片
  cv2.imshow(& # 39;帧# 39;,框架)
  
  如果cv2.waitKey(1)和0 xff==奥德(& # 39;提问# 39;):
  打破
  cap.release ()
  cv2.destroyAllWindows () 

<强> opencv代码

 # - * -编码:utf - 8 - *
  “““
  世爵编辑器
  
  这是一个临时的脚本文件。
  “““
  
  #设置工作路径
  进口操作系统
  os.chdir (& # 39; E: \ \ 0 yfl \ \ SH-spyder-workspace \ \ & # 39;)
  os.path.abspath(& # 39; # 39;公司)
  
  
  进口numpy np
  进口cv2
  
  1.1 #读取图片imread;展示图片imshow;导出图片imwrite
  #只是灰度图片
  img=cv2.imread (& # 39; Myhero.jpg& # 39;, cv2.IMREAD_GRAYSCALE)
  #彩色图片
  img=cv2.imread (& # 39; Myhero.jpg& # 39;, cv2.IMREAD_COLOR)
  #彩色以及带有透明度
  img=cv2.imread (& # 39; Myhero.jpg& # 39;, cv2.IMREAD_UNCHANGED)
  打印(img)
  #设置窗口可自动调节大小
  cv2.namedWindow(& # 39;图像# 39;,cv2.WINDOW_NORMAL)
  cv2.imshow(& # 39;图像# 39;,img)
  k=cv2.waitKey (0)
  #如果输入esc
  如果k==27日:
  #退出
  cv2.destroyAllWindows
  #如果输入
  elif k==奥德(& # 39;& # 39;):
  #保存图片,然后退出
  cv2.imwrite (& # 39; Myhero_out.png& # 39;, img)
  cv2.destroyAllWindows ()
  
  
  # 1.2视频读取
  #打开内置摄像头
  帽=cv2.VideoCapture (0)
  #打开视频
  帽=cv2.VideoCapture (& # 39; why.mp4& # 39;)
  #或者视频每秒多少帧的数据
  fps=cap.get (5)
  我=0
  而(真正的):
  #读取一帧
  ret,?cap.read ()
  #转化为灰图
  cv2.COLOR_BGR2GRAY灰色=cv2.cvtColor(框架)
  #设置导出文件名编的号
  我+ 1=#每1 s导出一张
  如果我/fps==int (i/fps):
  #导出文件名为为什么+编号+ . png
  #若想要导出灰图,则将下框架改面为灰色即可
  cv2.imwrite (“why" + str (int (i/fps)) +“.png",框架)
  #读完之后结束退出
  如果cv2.waitKey(1)==奥德(& # 39;提问# 39;):
  打破
  
  cap.release ()
  cv2.destoryAllWindows ()
  
  
  # 1.3图像像素修改
  rangexmin=100
  rangexmax=120
  rangeymin=90
  rangeymax=100
  img=cv2.imread (& # 39; Myhero.jpg& # 39;, 0)
  img [rangexmin: rangexmax rangeymin: rangeymax]=[[255] * (rangeymax-rangeymin) * (rangexmax-rangexmin)
  cv2.imwrite (& # 39; Myhero_out2.png& # 39;, img)
  
  #拆分以及合并图像通道1
  b, g, r=cv2.split (img)
  img=cv2.merge (b, g, r)
  
  # png转eps,不过非常模糊
  从matplotlib进口pyplot plt
  img=cv2.imread (& # 39; wechat1.png& # 39;, cv2.IMREAD_COLOR)
  plt.imsave (& # 39; wechat_out.eps& # 39;, img)
  
  #图像按比例混合
  img1=cv2.imread (& # 39; Myhero.jpg& # 39;, cv2.IMREAD_COLOR)
  img2=cv2.imread (& # 39; Myhero_out.png& # 39;, cv2.IMREAD_COLOR)
  dst=cv2.addWeighted (img2 img1, 0.5, 0.5, 0)
  cv2.imwrite (“Myhero_combi.jpg", dst)
  
  
  # 1.4按位运算
  #加载图像
  img1=cv2.imread (“Myhero.jpg")
  img2=cv2.imread (“why1.png")
  #后面那张图更大
  行、关口=img1.shape渠道
  投资回报率=img2(0:行,0:峡路)
  #做一个ROI为图像的大小
  img2gray=cv2.cvtColor (img1 cv2.COLOR_BGR2GRAY)
  #小于175年的改为0,大于175的赋值为255
  ret,面具=cv2.threshold(175255年img2gray cv2.THRESH_BINARY)
  cv2.imwrite (“Myhero_mask.jpg",面膜)
  # 255 -掩码=mask_inv
  mask_inv=cv2.bitwise_not(面具)
  cv2.imwrite (“Myhero_mask_inv.jpg" mask_inv)
  #在面具白色区域显示成ROI,背景图片
  img2_bg=cv2.bitwise_and (ROI, ROI掩码=面具)
  cv2.imwrite (“Myhero_pic2_backgroud.jpg" img2_bg)
  #除了面具以外的区域都显示成img1,前景图片
  img1_fg=cv2.bitwise_and (img1 img1,面具=mask_inv)
  cv2.imwrite (“Myhero_pic2_frontgroud.jpg" img1_fg)
  #前景图片加上背景图片
  dst=cv2.add (img2_bg img1_fg)
  img2[0:行,0:关口]=dst
  cv2.imwrite (“Myhero_pic2_addgroud.jpg", dst)
  #结束
  
  2 #构建淹膜方法
  #截取帧
  ret,?cap.read ()
  #转换到HSV
  cv2.COLOR_BGR2HSV hsv=cv2.cvtColor(框架)
  #设定蓝色的阈值
  lower_blue=np.array((110年,50,50))
  upper_blue=np.array ([130255255])
  #根据阈值构建掩模
  掩码=cv2.inRange (hsv, lower_blue upper_blue)
  #对原图像和掩模进行位运算
  res=cv2.bitwise_and(帧,帧,面膜=面具)
  
  
  #图片放缩,用的插值方法,所以不会损害清晰度
  res=cv2.resize (img1, fx=2,=2,财政年度内插=cv2.INTER_CUBIC)
  cv2.imwrite (“Myhero_bigger.jpg" res)
  #第二种插值方法
  高度、宽度=img.shape (2):
  res=cv2.resize (img,(2 * 2 *加强筋的宽度和高度)、插值=cv2.INTER_CUBIC)
  
  #边现实图片中不好用,人工画的图片还可以
  img=cv2.imread (& # 39; why3.png& # 39;, 0)
  边缘=cv2.Canny (img, 50100)
  cv2.imwrite (“why3_edge.png"边缘)
  
  #识别轮廓,并保存轮廓点轮廓
  img=cv2.imread (& # 39; why129.png& # 39;)
  imgray=cv2.imread (& # 39; why129.png& # 39;, cv2.IMREAD_GRAYSCALE)
  ret,打=cv2.threshold (imgray 127255 0)
  cv2.imwrite (“2. jpg",打)
  形象,轮廓,等级=cv2.findContours(打、cv2.RETR_TREE cv2.CHAIN_APPROX_SIMPLE)
  img=cv2。drawContours (img,轮廓,1 (0255 0),3)
  cv2.imwrite (“3. jpg", img)
  
  
  #轮廓
  img=cv2.imread (& # 39; why3.png& # 39;, 0)
  ret,打=cv2.threshold (img, 127255 0)=cv2轮廓、层次结构。findContours(打,1、2)
  问[0]=轮廓
  #近似轮廓
  ε=0.1 * cv2.arcLength(问,真的)
  约=cv2.approxPolyDP(问,ε,真的)
  
  img=cv2。drawContours (img,大约1 (0255 0),3)
  cv2.imwrite (“4. jpg", img)
  
  从matplotlib进口pyplot plt
  #图像识别/匹配
  img_rgb=cv2.imread (& # 39; why174.png& # 39;)
  img_gray=cv2。cvtColor (img_rgb cv2.COLOR_BGR2GRAY)
  img2=img_gray.copy ()
  模板=cv2.imread (& # 39; 0 temp.png& # 39;, 0)
  w h=template.shape [:: 1)
  #共有六种识别方法
  方法=[& # 39;cv2.TM_CCOEFF& # 39; & # 39; cv2.TM_CCOEFF_NORMED& # 39;, & # 39; cv2.TM_CCORR& # 39;, & # 39; cv2.TM_CCORR_NORMED& # 39;, & # 39; cv2.TM_SQDIFF& # 39;, & # 39; cv2.TM_SQDIFF_NORMED& # 39;】
  
  冰毒的方法:
  img=img2.copy ()
  # eval返回某个式子的计算结果
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

如何利用python调取摄像头