Python基础--opencv入门1

opencv是一个开源计算机视觉库,安装非常简单,WIN+R启动cmd后直接使用pip安装,我用的是python3.6

pip install opencv-python

最近在忙于某个比赛项目中,需要用到图像识别,首先想到的就是使用python。python的特点我就不说了,主要是考虑到其的简洁和庞大的第三方库。

这是opencv的文档:https://opencv.org

1.打开摄像头拍下我们的帅照:

import cv2   #导入opencv库
cap=cv2.VideoCapture(0)  #打开电脑的摄像头
i=50
while i:
    ret,frame=cap.read()  #读取一帧
    cv2.imwrite("image.jpg",frame)  #写进文件
    cv2.imshow("image",frame)   #显示写进文件的帧
    cv2.waitKey(1)  #等待
    i-=1
cap.release()  #释放摄像头

这就是opencv调用自己的电脑摄像头,如果用USB连接的外部摄像头可以把摄像头的语句变为:

cap=cv2.VideoCapture(1)

2.简单处理图片

这里我从网上直接搜索得到的苹果图片,把图片读进去后做简单的处理,最后用一个圆把苹果圈出来。

import cv2
import numpy as np

img=cv2.imread("test.jpg")  #读取图片
cv2.imshow("test",img)     #显示图片
#BGR
upper=np.array([124,255,255])  #BGR上限
lower=np.array([20,20,100])    #BGR下限

cv2.waitKey(0)  #一直等待

在这里要注意一下,在opencv中,并不是颜色不是RGB顺序的,而是BGR。

src=cv2.inRange(img,lower,upper)  #在图片中找到介于lower和upper的像素点
cv2.imshow("src",src)

这里是:lower<(BGR)<upper

找出轮廓:

#列表中第二个元素是所有轮廓
contours=cv2.findContours(src,cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[1] 

#在原图上画出轮廓
cv2.drawContours(img,contours,-1,(255,0,0),3)
cv2.imshow("test",img)   

找到最大的轮廓,然后画出内接圆:

#找到最大的轮廓
cnt=max(contours,key=cv2.contourArea)
#返回圆心,和半径
((x,y),radius)=cv2.minEnclosingCircle(cnt)
#画出圆
cv2.circle(img,(int(x),int(y)),int(radius),(0,255,0),2)
cv2.imshow("test",img)

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值