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