Opencv实现停车位识别思路详解题 用python实现

1.实现的思路

(1)首先使用一个处理画框的程序,将图片中的有车和无车的停车位给画出来,并且保存坐标(如果画错了,将鼠标移至要删除的框中,右击鼠标,即可删除);

1

2

3

4

5

6

7

8

9

10

11

#定义回调函数

def mouseClick(events,x,y,flags,params):

    #按下鼠标左键,将点击的坐标(x,y)保存到position列表中

    if (events&cv2.EVENT_LBUTTONDOWN==cv2.EVENT_LBUTTONDOWN):

        position.append((x,y))

    #按下鼠标右键时,移除选中的框

    if (events&cv2.EVENT_RBUTTONDOWN==cv2.EVENT_RBUTTONDOWN):

        for i,pos in enumerate(position):

            (x1,y1)=pos

            if (x1<x<x1+img_width and y1<y<y1+img_height):

                position.pop(i)

(2)画好之后,关闭窗口,即可看到已经保存好坐标的文件,下次再运行程序时,不用再画框;程序会读出当前文件,将之前保存好的坐标加载出画出框。

1

2

3

4

5

6

7

#首先查看文件是否已经包含了CarParkPos文件

try:

    with open('CarParkPos','rb') as fp:

        position=pickle.load(fp)

except:

    # 存储所有停车位的坐标列表

    position=[]

(3)主程序的思路
将摄像头读取的图片进行处理
Opencv基础知识点:
Python Opencv中基础的知识点_python_脚本之家
高斯去噪:
python Gabor滤波器讲解_python_脚本之家
局部二值化:
详解Python+OpenCV实现图像二值化_python_脚本之家
中值滤波:
python Gabor滤波器讲解_python_脚本之家
Opencv中获取卷积核:
Python Opencv中获取卷积核的实现代码_python_脚本之家
腐蚀操作:
OpenCV-Python实现腐蚀与膨胀的实例_python_脚本之家

1

2

3

4

5

6

7

8

9

10

11

#转换为灰度图

    gray=cv2.cvtColor(src=frame,code=cv2.COLOR_BGR2GRAY)

    #高斯去噪

    gauss=cv2.GaussianBlur(src=gray,ksize=(3,3),sigmaX=0)

    #图像二值化处理

    thresh=cv2.adaptiveThreshold(src=gauss,maxValue=255,adaptiveMethod=cv2.ADAPTIVE_THRESH_GAUSSIAN_C,

            thresholdType=cv2.THRESH_BINARY_INV,blockSize=21,C=16)

    # 中值滤波操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值