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

作者:ShellCollector 时间:2021-07-18 20:46:58 

如下所示:


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()

来源:https://blog.csdn.net/jacke121/article/details/54565309

标签:python,摄像头,图像
0
投稿

猜你喜欢

  • Elasticsearches打分机制讲解

    2023-05-31 10:41:03
  • 完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误

    2023-07-31 10:06:37
  • Python用dilb提取照片上人脸的示例

    2021-07-04 23:34:47
  • SQL Server数据库分离和附加数据库的操作步骤

    2024-01-27 19:59:23
  • python Shapely使用指南详解

    2022-11-01 23:38:04
  • ASP.NET Core优雅的在开发环境保存机密(User Secrets)

    2023-07-15 20:25:37
  • MySQL慢SQL语句常见诱因以及解决方法

    2024-01-18 12:36:25
  • Hadoop 文件系统命令行基础详解

    2023-08-31 13:57:03
  • SQL Server 2008升级报表服务器数据库

    2008-11-18 12:36:00
  • Python开发编码规范

    2021-04-10 21:07:53
  • GoLang之go build命令的具体使用

    2024-04-27 15:24:56
  • 小程序scroll-view组件实现滚动的示例代码

    2024-05-11 09:31:42
  • SQL Server中的XML数据类型详解

    2024-01-15 20:56:44
  • IE6下的CSS BUG枚举

    2010-06-11 10:45:00
  • 基于OpenCV python3实现证件照换背景的方法

    2023-01-30 06:25:54
  • python里对list中的整数求平均并排序

    2022-08-23 19:51:24
  • js格式化金额可选是否带千分位以及保留精度

    2023-10-06 04:03:14
  • PyTorch实现手写数字的识别入门小白教程

    2021-02-04 19:58:59
  • MySQL优化方案参考

    2024-01-24 03:28:03
  • 微信公众平台实现获取用户OpenID的方法

    2023-11-17 05:55:56
  • asp之家 网络编程 m.aspxhome.com