源码及图片请点赞关注收藏后私信博主要
opencv广泛用于多种于计算机视觉和机器学习相关的算法 其用C++语言编写,主要接口也是C++语言 但也有python等环境的接口 接下来我们着重介绍他的使用。
opencv python是一个用于解决计算机视觉问题的python库 opencv python与numpy兼容 数据都被转换成numpy数据结构
安装可以看我这篇博客opencv的安装与配置
部分方法使用方法如下 1:imshow()
显示图像 2:destroyallwindows
用于卸载窗口 3:waitkey
等待用户按键 其参数是延迟的时间
1:将图像转换成灰度图输出并保存
代码如下:
import cv2 print(cv2.__version__) img=cv2.imread(图片路径,0) cv2.imshow("image",img) k=cv2.waitKey(0) if k==27: cv2.destroyWindow() elif k==ord('s'): cv2.imwrite('result',img) cv2.destroyWindow()
拆分通道并着色
img=cv2.imread(r"图片路径",0) cv2.imshow('image',img) k=cv2.waitKey(0) if k==27: cv2.destroyAllWindows() elif k==ord('s'): b,g,r=cv2.split(img) zeros=np.zeros(img.shape[:2],dtype="uint8") imgr=cv2.merge([zeros,zeros,r]) imgg=cv2.merge([zeros,g,zeros]) imgb=cv2.merge([b,zeros,zeros]) cv2.imwrite('r.png',imgr) cv2.imwrite('g.png',imgg) cv2.imwrite('b.png',imgb) cv2.destroyAllWindows()
捕获摄像头
cap=cv2.VideoCapture(0) while(True): ret,frame=cap.read() cv2.imshow(u"Capture",frame) key=cv2.waitKey(1) if key&0xff==ord('q')or key==27: print(frame.shape,ret) break cap.release() cv2.destroyAllWindows()
2:摄像头范围内的人脸检测
效果如下 可以识别出人脸并用 矩形圈出
代码如下
import cv2 cascpath=r"路径" faceCascade=cv2.CascadeClassifier(cascpath) cap=cv2.VideoCapture(0) while(True): ret,img=cap.read() faces=faceCascade.detectMultiScale(img,1.2,2,cv2.CASCADE_SCALE_IMAGE,(20,20)) for(x,y,w,h) in faces: img=cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2) cv2.imshow(u"detect",img) key=cv2.waitKey(1) if key&0xFF==ord('q')or key ==27: break cv2.destroyWindow() cv2.release()