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


Posted in Python onAugust 03, 2018

如下所示:

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 相关文章推荐
python入门之语句(if语句、while语句、for语句)
Jan 19 Python
Python import自定义模块方法
Feb 12 Python
Python缩进和冒号详解
Jun 01 Python
window下eclipse安装python插件教程
Apr 24 Python
python实现数独游戏 java简单实现数独游戏
Mar 30 Python
[原创]Python入门教程4. 元组基本操作
Oct 31 Python
python 获取utc时间转化为本地时间的方法
Dec 31 Python
Python os.access()用法实例
Feb 18 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
Jul 01 Python
pymongo insert_many 批量插入的实例
Dec 05 Python
python tkinter Entry控件的焦点移动操作
May 22 Python
python开启摄像头以及深度学习实现目标检测方法
Aug 03 #Python
Python函数参数操作详解
Aug 03 #Python
利用python打开摄像头及颜色检测方法
Aug 03 #Python
numpy添加新的维度:newaxis的方法
Aug 02 #Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
Aug 02 #Python
对numpy中的transpose和swapaxes函数详解
Aug 02 #Python
Numpy 改变数组维度的几种方法小结
Aug 02 #Python
You might like
PHP 事件机制(2)
2011/03/23 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
很可爱的输入框
2008/08/03 Javascript
javascript 面向对象的JavaScript类
2010/05/04 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
日常收集整理的JavaScript常用函数方法
2015/12/10 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
Vue插槽原理与用法详解
2019/03/05 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
python基础教程之缩进介绍
2014/08/29 Python
利用python求解物理学中的双弹簧质能系统详解
2017/09/29 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
Pandas 数据处理,数据清洗详解
2018/07/10 Python
python实现证件照换底功能
2019/08/20 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
2020/11/01 Python
python 基于opencv 实现一个鼠标绘图小程序
2020/12/11 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
.net工程师笔试题
2012/06/09 面试题
《藏戏》教学反思
2014/02/11 职场文书
家电业务员岗位职责
2014/03/10 职场文书
法制宣传日活动总结
2014/04/29 职场文书
党员个人整改措施
2014/10/24 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
LeetCode189轮转数组python示例
2022/08/05 Python