python机器学习入门之opencv的使用(超详细,必看)

深藏阁楼爱情的钟 2023-09-30 15:24 138阅读 0赞

源码及图片请点赞关注收藏后私信博主要

opencv广泛用于多种于计算机视觉和机器学习相关的算法 其用C++语言编写,主要接口也是C++语言 但也有python等环境的接口 接下来我们着重介绍他的使用。

opencv python是一个用于解决计算机视觉问题的python库 opencv python与numpy兼容 数据都被转换成numpy数据结构

安装可以看我这篇博客opencv的安装与配置

部分方法使用方法如下 1:imshow() 显示图像 2:destroyallwindows用于卸载窗口 3:waitkey等待用户按键 其参数是延迟的时间

1:将图像转换成灰度图输出并保存

033b471fd05841d8a00399d10ba37cf3.png

代码如下:

  1. import cv2
  2. print(cv2.__version__)
  3. img=cv2.imread(图片路径,0)
  4. cv2.imshow("image",img)
  5. k=cv2.waitKey(0)
  6. if k==27:
  7. cv2.destroyWindow()
  8. elif k==ord('s'):
  9. cv2.imwrite('result',img)
  10. cv2.destroyWindow()

拆分通道并着色

  1. img=cv2.imread(r"图片路径",0)
  2. cv2.imshow('image',img)
  3. k=cv2.waitKey(0)
  4. if k==27:
  5. cv2.destroyAllWindows()
  6. elif k==ord('s'):
  7. b,g,r=cv2.split(img)
  8. zeros=np.zeros(img.shape[:2],dtype="uint8")
  9. imgr=cv2.merge([zeros,zeros,r])
  10. imgg=cv2.merge([zeros,g,zeros])
  11. imgb=cv2.merge([b,zeros,zeros])
  12. cv2.imwrite('r.png',imgr)
  13. cv2.imwrite('g.png',imgg)
  14. cv2.imwrite('b.png',imgb)
  15. cv2.destroyAllWindows()

捕获摄像头

  1. cap=cv2.VideoCapture(0)
  2. while(True):
  3. ret,frame=cap.read()
  4. cv2.imshow(u"Capture",frame)
  5. key=cv2.waitKey(1)
  6. if key&0xff==ord('q')or key==27:
  7. print(frame.shape,ret)
  8. break
  9. cap.release()
  10. cv2.destroyAllWindows()

3:摄像头范围内的人脸检测

效果如下 可以识别出人脸并用 矩形圈出

b265954cc1c24034845079503b25eff7.jpeg

代码如下

  1. import cv2
  2. cascpath=r"路径"
  3. faceCascade=cv2.CascadeClassifier(cascpath)
  4. cap=cv2.VideoCapture(0)
  5. while(True):
  6. ret,img=cap.read()
  7. faces=faceCascade.detectMultiScale(img,1.2,2,cv2.CASCADE_SCALE_IMAGE,(20,20))
  8. for(x,y,w,h) in faces:
  9. img=cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
  10. cv2.imshow(u"detect",img)
  11. key=cv2.waitKey(1)
  12. if key&0xFF==ord('q')or key ==27:
  13. break
  14. cv2.destroyWindow()
  15. cv2.release()

源码及图片请点赞关注收藏后私信博主要

发表评论

表情:
评论列表 (有 0 条评论,138人围观)

还没有评论,来说两句吧...

相关阅读