在python3下使用OpenCV 抓取摄像头图像并实时显示3色直方图
Posted gxgl314
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在python3下使用OpenCV 抓取摄像头图像并实时显示3色直方图相关的知识,希望对你有一定的参考价值。
以下代码为在Python3环境下利用OpenCV 抓取摄像头的实时图像, 通过OpenCV的 calHist函数计算直方图, 并显示在3个不同窗口中.
import cv2
import numpy as np
from matplotlib import pyplot as plt
import time
cap = cv2.VideoCapture(0)
for i in range(0, 19):
print(cap.get(i))
while(1):
ret, frame = cap.read()
# color = (\'b\', \'g\', \'r\')
color = ((255,0,0), (0,255,0), (0,0,255))
for i, col in enumerate(color):
hist = cv2.calcHist([frame], [i], None, [256], [0, 256])
minVal, maxVal,minPos,maxPos = cv2.minMaxLoc(hist)
# print(minVal, maxVal,minPos,maxPos)
histImage = np.zeros([256,256,3], np.uint8)
for x in range(256):
cv2.line(histImage, (x,256), (x, 256-(hist[x]/maxVal)*250), col)
cv2.imshow("Hist{}".format(i), histImage)
cv2.imshow("Capture", frame)
# time.sleep(0.01)
key = cv2.waitKey(1)
if key & 0xff == ord(\'q\') or key == 27:
print(frame.shape,ret)
break
cap.release()
cv2.destroyAllWindows()
以上是关于在python3下使用OpenCV 抓取摄像头图像并实时显示3色直方图的主要内容,如果未能解决你的问题,请参考以下文章
opencv 如何能把从摄像头中抓取的两帐图片进行精确比较?