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

 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()

猜你喜欢

转载自blog.csdn.net/jiebaoshayebuhui/article/details/126765660