效果如下 实现原理很简答 测试的效果 最后附上所有代码
图片能处理和识别了,接下来就是摄像头了
import cv2 import numpy as np import matplotlib.pyplot as plt  cv2.namedWindow("Photo_Detect") #定义一个窗口 cap=cv2.VideoCapture(0) #捕获摄像头图像  0位默认的摄像头 笔记本的自带摄像头  1为外界摄像头 while(True): #值为1不断读取图像     ret, frame = cap.read() #视频捕获帧     cv2.imwrite('cap_RGB.jpg',frame) #写入捕获到的视频帧  命名为cap_RGB.jpg     cv2.imshow('Photo_Detect',frame) #显示窗口 查看实时图像 #按S 读取灰度图 if (cv2.waitKey(1) & 0xFF) == ord('S'): #不断刷新图像,这里是1ms 返回值为当前键盘按键值         gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) #RGB图像转为单通道的灰度图像         gray = cv2.resize(gray,(640,480)) #图像大小为640*480         cv2.imshow('cap',gray) #显示灰度图窗口         cv2.imwrite('cap.jpg',gray) #写入灰度图   if cv2.waitKey(1) & 0xFF == ord('Q'): #按Q关闭所有窗口  一次没反应的话就多按几下 break #执行完后释放窗口 cap.release() cv2.waitKey(0) cv2.destroyAllWindows() 
 
 可以识别摄像头当前所看到的图像
 按一下S
 输出灰度图
 
 视频读取没什么问题了接下来是结合之前的图像处理  对摄像头图像进行实时处理
 把摄像头读取一帧,存储一帧的数据进行处理  然后输出
 因为机器处理的速度的很快 可以对每一帧  每一个图像进行处理
 所以看起来效果就是实时处理摄像头的所显示的视频
 
 
 移动物品 框会跟着动
 一样的按Q退出import cv2 import numpy as np import matplotlib.pyplot as plt  #高斯滤波 def GausBlur(img):     gaus = cv2.GaussianBlur(img,(5,5),2) #(5, 5)表示高斯矩阵的长与宽都是5,标准差取2 return gaus  #灰度处理 def Gray_img(gaus_img):     gray = cv2.cvtColor(gaus_img,cv2.COLOR_BGR2GRAY) return gray  #开运算操作 def open_mor(binary):     kernel = np.ones((6,6),np.uint8) #8 8 数字可以自己改变加以调整效果  数字越大强度越高     opening = cv2.morphologyEx(binary,cv2.MORPH_OPEN,kernel, iterations=5) #iterations进行7次操作  次数越多效果越强  return opening  #定义一个图像处理函数 def img_disapose(): #捕获存储完图像之后 对图像进行处理 #读取上面存储的图片     img = cv2.imread('cap_RGB.jpg') #0为灰度,1为彩色     img = cv2.resize(img,(640,480)) #设置窗口大小 #高斯滤波     gaus_img = GausBlur(img) #灰度处理     gray_img = Gray_img(gaus_img) #二值化处理     ret , binary = cv2.threshold(gray_img ,148 , 255 , cv2.THRESH_BINARY) #148  255 为设置阈值 #开运算操作     open_img = open_mor(binary) #颜色反转一下     open_img=~open_img     #轮廓检测     contours, hierarchy = cv2.findContours(open_img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) print('hierarchy',hierarchy) #描绘轮廓     c = sorted(contours, key=cv2.contourArea, reverse=True)[0]     rect = cv2.minAreaRect(c)     box = np.int0(cv2.boxPoints(rect)) #重点 这里的img要换成frame     cv2.drawContours(frame, [box], -1, (0, 255, 0), 3)     cv2.putText(frame, 'xuebi',(box[0][0],box[0][1]) , cv2.FONT_HERSHEY_SIMPLEX, 2, (0,0,255), 1)   cv2.namedWindow("Photo_Detect") #定义一个窗口 cap=cv2.VideoCapture(1) #捕获摄像头图像  0位默认的摄像头 笔记本的自带摄像头  1为外界摄像头 while(True): #值为1不断读取图像     ret, frame = cap.read() #视频捕获帧     cv2.imwrite('cap_RGB.jpg',frame) #写入捕获到的视频帧  命名为cap_RGB.jpg     img_disapose() #图像处理     cv2.imshow('Photo_Detect',frame) #显示窗口 查看实时图像 if cv2.waitKey(1) & 0xFF == ord('Q'): #按Q关闭所有窗口  一次没反应的话就多按几下 break #执行完后释放窗口 cap.release() cv2.waitKey(0) cv2.destroyAllWindows() 觉得有用的不妨点个赞
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
 官方软件产品操作指南 (170)
官方软件产品操作指南 (170)