火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 1504|回复: 1
打印 上一主题 下一主题

火山OPENCV简单案例-车牌检测

[复制链接]

54

主题

367

帖子

3881

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3881
QQ
跳转到指定楼层
楼主
发表于 2023-4-15 20:48:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
车牌提取过程

一个典型的车辆检测一般包括以下2个部分:车辆图像获取、车牌定位。

代码
<火山程序 类型 = "通常" 版本 = 1 />

包 火山.程序

类 启动类 <公开 基础类 = 程序类>
{
    方法 启动方法 <公开 类型 = 整数>
    {
        // 在此处填入自己的代码
        变量 _目标图像 <类型 = CV矩阵类>
        变量 _目标图像_backup <类型 = CV矩阵类>
        // 将图片转为灰度图像
        _目标图像 = CV核心.读入图像 ("./car_Code2.jpg", )
        // 将原图做个备份
        _目标图像_backup = _目标图像.复制 ()
        // 处理彩色图片为灰度图片
        CV核心.颜色空间转换 (_目标图像, _目标图像, , )
        // 高斯模糊滤波器对图像进行模糊处理
        CV核心.高斯模糊 (_目标图像, _目标图像, CV尺寸类.创建尺寸 (3, 3), 0, , )
        // CV核心.双边滤波 (_目标图像, _目标图像, 13, 15, 15, )
        // canny边缘检测
        CV核心.边缘检测Canny (_目标图像, _目标图像, 500, 200, 3, )
        CV核心.显示图像 ("显示车牌", _目标图像, , )

        // 指定核大小,如果效果不佳,可以试着将核调大
        变量 kernelX <类型 = CV矩阵类>
        变量 kernelY <类型 = CV矩阵类>
        kernelX = CV核心.获取结构元素 (, CV尺寸类.创建尺寸 (25, 1), )
        kernelY = CV核心.获取结构元素 (, CV尺寸类.创建尺寸 (1, 19), )
        // 对图像进行膨胀腐蚀处理
        CV核心.膨胀 (_目标图像, _目标图像, kernelX, CV坐标点.新建坐标 (-1, -1), 2, , )
        CV核心.腐蚀 (_目标图像, _目标图像, kernelX, CV坐标点.新建坐标 (-1, -1), 4, , )
        CV核心.膨胀 (_目标图像, _目标图像, kernelX, CV坐标点.新建坐标 (-1, -1), 2, , )
        CV核心.腐蚀 (_目标图像, _目标图像, kernelY, CV坐标点.新建坐标 (-1, -1), 1, , )
        CV核心.膨胀 (_目标图像, _目标图像, kernelY, CV坐标点.新建坐标 (-1, -1), 2, , )
        // 再对图像进行模糊处理
        CV核心.中值模糊 (_目标图像, _目标图像, 15)
        CV核心.中值模糊 (_目标图像, _目标图像, 15)
        变量 _图像中的轮廓 <类型 = CV坐标容器数组>
        变量 _车牌图像 <类型 = CV矩阵类>
        // 寻找图像中的车牌轮廓
        CV核心.寻找轮廓 (_目标图像, _图像中的轮廓, , , )
        // 遍历所有寻找到的轮廓信息
        计次循环 (_图像中的轮廓.取成员数 ())
        {
            变量 count <类型 = 整数>
            变量 coordidtes <类型 = CV坐标容器>
            coordidtes = _图像中的轮廓.取成员 (取循环索引 ())
            变量 rect <类型 = CV矩形类>
            rect = CV核心.计算轮廓最小外接正交矩形 (coordidtes)
            变量 _cal_data <类型 = 小数>
            _cal_data = (小数)rect.宽度 / (小数)rect.高度
            // 中国普遍的车牌宽高比都是大于2.1小于等于4.0
            如果 (_cal_data >= 2.1 && _cal_data <= 4.0)
            {
                CV核心.画矩形 (_目标图像_backup, rect, CV标量类.新建三通道 (255, 255, 0), , )
                CV核心.提取ROI区域图像 (_目标图像_backup, rect, _车牌图像)
            }
        }
        // 显示图像
        CV核心.显示图像 ("resultimg", _目标图像_backup, , )
        CV核心.显示图像 ("code", _车牌图像, , )
        CV核心.等待按键 (0)
        CV核心.关闭所有窗口 ()
        返回 (1)
    }
}

效果图



回复

使用道具 举报

沙发
匿名  发表于 2023-7-25 17:36:29
请问这个是在窗口里运行的吗
回复

使用道具

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-4-26 22:02 , Processed in 0.093430 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表