python调用摄像头显示图像的实例

yipeiwu_com6年前Python基础

如下所示:

import cv2
import numpy as np

bins = np.arange(256).reshape(256,1)

def hist_curve(im):
 h = np.zeros((300,256,3))
 if len(im.shape) == 2:
  color = [(255,255,255)]
 elif im.shape[2] == 3:
  color = [ (255,0,0),(0,255,0),(0,0,255) ]
 for ch, col in enumerate(color):
  hist_item = cv2.calcHist([im],[ch],None,[256],[0,256])
  cv2.normalize(hist_item,hist_item,0,255,cv2.NORM_MINMAX)
  hist=np.int32(np.around(hist_item))
  pts = np.int32(np.column_stack((bins,hist)))
  cv2.polylines(h,[pts],False,col)
 y=np.flipud(h)
 return y

def hist_lines(im):
 h = np.zeros((300,256,3))
 if len(im.shape)!=2:
  print "hist_lines applicable only for grayscale images"
  #print "so converting image to grayscale for representation"
  im = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
 hist_item = cv2.calcHist([im],[0],None,[256],[0,256])
 cv2.normalize(hist_item,hist_item,0,255,cv2.NORM_MINMAX)
 hist=np.int32(np.around(hist_item))
 for x,y in enumerate(hist):
  cv2.line(h,(x,0),(x,y),(255,255,255))
 y = np.flipud(h)
 return y


if __name__ == '__main__':

 import sys

 if len(sys.argv)>1:
  im = cv2.imread(sys.argv[1])
 else :
  im = cv2.imread('../cpp/lena.jpg')
  print "usage : python hist.py <image_file>"


 gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)


 print ''' Histogram plotting \n
 Keymap :\n
 a - show histogram for color image in curve mode \n
 b - show histogram in bin mode \n
 c - show equalized histogram (always in bin mode) \n
 d - show histogram for color image in curve mode \n
 e - show histogram for a normalized image in curve mode \n
 Esc - exit \n
 '''

 cv2.imshow('image',im)
 while True:
  k = cv2.waitKey(0)&0xFF
  if k == ord('a'):
   curve = hist_curve(im)
   cv2.imshow('histogram',curve)
   cv2.imshow('image',im)
   print 'a'
  elif k == ord('b'):
   print 'b'
   lines = hist_lines(im)
   cv2.imshow('histogram',lines)
   cv2.imshow('image',gray)
  elif k == ord('c'):
   print 'c'
   equ = cv2.equalizeHist(gray)
   lines = hist_lines(equ)
   cv2.imshow('histogram',lines)
   cv2.imshow('image',equ)
  elif k == ord('d'):
   print 'd'
   curve = hist_curve(gray)
   cv2.imshow('histogram',curve)
   cv2.imshow('image',gray)
  elif k == ord('e'):
   print 'e'
   norm = cv2.normalize(gray,alpha = 0,beta = 255,norm_type = cv2.NORM_MINMAX)
   lines = hist_lines(norm)
   cv2.imshow('histogram',lines)
   cv2.imshow('image',norm)
  elif k == 27:
   print 'ESC'
   cv2.destroyAllWindows()
   break
 cv2.destroyAllWindows()

以上这篇python调用摄像头显示图像的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

如何在VSCode上轻松舒适的配置Python的方法步骤

如何在VSCode上轻松舒适的配置Python的方法步骤

前言 之前被学长推荐使用了VSCode,后惊叹了VSCode的强大,尤其是他的配置,比之前使用sublime方便多了,刚好实验室也来了一批新的学弟学妹,来仔细的逐步的讲解一些,在自己的电...

Python Trie树实现字典排序

Python Trie树实现字典排序

一般语言都提供了按字典排序的API,比如跟微信公众平台对接时就需要用到字典排序。按字典排序有很多种算法,最容易想到的就是字符串搜索的方式,但这种方式实现起来很麻烦,性能也不太好。Trie...

用PyQt进行Python图形界面的程序的开发的入门指引

用PyQt进行Python图形界面的程序的开发的入门指引

一般来说,选择用于应用程序的 GUI 工具箱会是一件棘手的事。使用 Python(许多语言也一样)的程序员可以选择的 GUI 工具箱种类繁多,而每个工具箱都有各自的优缺点。有些速度比其它...

python中requests模块的使用方法

本文实例讲述了python中requests模块的使用方法。分享给大家供大家参考。具体分析如下: 在HTTP相关处理中使用python是不必要的麻烦,这包括urllib2模块以巨大的复杂...

浅谈pandas筛选出表中满足另一个表所有条件的数据方法

浅谈pandas筛选出表中满足另一个表所有条件的数据方法

今天记录一下pandas筛选出一个表中满足另一个表中所有条件的数据。例如: list1 结构:名字,ID,颜色,数量,类型。 list1 = [['a',1,255,100,'03'],...