源码及图片请点赞关注收藏后私信博主要
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()
3:摄像头范围内的人脸检测
效果如下 可以识别出人脸并用 矩形圈出
代码如下
- 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()
源码及图片请点赞关注收藏后私信博主要