对于车牌识别,或OCR文字识别时,需要先对图片进行预处理,去除干扰因素后再进行后续图像识别操作!

图像形态学操作时候,可以通过自定义的结构元素实现结构元素对输入图像一些对象敏感、另外一些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出。通过使用两个最基本的形态学操作 – 膨胀腐蚀,使用不同的结构元素实现对输入图像的操作、得到想要的结果。

- 腐蚀,输出的像素值是结构元素覆盖下输入图像的最小像素值

- 膨胀,输出的像素值是结构元素覆盖下输入图像的最大像素值

(1)二值图像与灰度图像上的腐蚀操作原理

(2)二值图像与灰度图像上的膨胀操作原理

(3)结构元素,上述膨胀与腐蚀过程可以使用任意的结构元素(矩形、圆、直线)

操作步骤

(1)输入图像彩色图像 - imread()

(2)转换为灰度图像 – cvtColor()

(3)转换为二值图像 – adaptiveThreshold()

(4)定义结构元素 - getStructuringElement()

(5)开操作 (腐蚀+膨胀)提取 水平与垂直线

(6)后处理 - bitwise_not()

源代码

#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;int main(int argc, char** argv)
{Mat src, dst;src = imread("C:/Desktop/omd_Opencv/ms/2018-05-09_161301.png");//输入彩色图像if (!src.data){printf("could not load image...\n");return -1;}char INPUT_WIN[] = "input image";char OUTPUT_WIN[] = "result image";namedWindow(INPUT_WIN,CV_WINDOW_AUTOSIZE);imshow(INPUT_WIN,src);Mat gray_src;cvtColor(src, gray_src, CV_BGR2GRAY); //转换为灰度图像imshow("gray image",gray_src);Mat binImg;adaptiveThreshold(~gray_src,binImg,255,ADAPTIVE_THRESH_MEAN_C,THRESH_BINARY,15,-2);//转换为二值图像,~gray_src取反白底显示imshow("bin image",binImg);//矩形结构Mat kernel = getStructuringElement(MORPH_RECT, Size(2,2), Point(-1, -1));//注意:一般Size(x, y), x, y 必须是正数而且是奇数Mat temp;//开操作(先腐蚀后膨胀),目的:去掉细小的对象erode(binImg, temp, kernel);//形态学操作 - 腐蚀dilate(temp, dst, kernel);//形态学操作-膨胀bitwise_not(dst,dst);//做后处理,像素取反操作imshow("final Result",dst);waitKey(0);return 0;
}

运行结果

基于OpenCV文字特征提取相关推荐

  1. android opencv 获取小图在大图的坐标_Android开发—基于OpenCV实现相机实时图像识别跟踪...

    利用OpenCV实现实时图像识别和图像跟踪 图像识别 什么是图像识别 图像识别,是指利用计算机对图像进行处理.分析和理解,以识别各种不同模式的目标和对像的技术.根据观测到的图像,对其中的物体分辨其类别 ...

  2. 基于 OpenCV + Python 的人脸识别上课签到系统

    目录 前言 安装第三方库 第一步:采集人脸图像 (1)修改姓名学号 (2)运行capture_face.py (3)采集人脸图像 (4)查看采集到的人脸图像 第二步:训练模型 第三步:识别签到 (1) ...

  3. 基于OpenCV的图像分割处理!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:姚童,Datawhale优秀学习者,华北电力大学 图像阈值化分割是 ...

  4. 基于OpenCV的表格文本内容提取

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 小伙伴们可能会觉得从图像中提取文本是一件很麻烦的事情,尤其是需要提 ...

  5. 基于OpenCV实现口罩识别

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 昨天在GitHub上看到了一个开源的项目,是利用深度学习来检测是否 ...

  6. 基于OpenCV实战:车牌检测

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 拥有思维导图或流程将引导我们朝着探索和寻找实现目标的正确道路的方向 ...

  7. 实战:基于OpenCV进行长时间曝光(内含彩蛋)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 在本文中,我们将学习长时间曝光摄影技术,以及如何使用Python和 ...

  8. 基于OpenCV修复表格缺失的轮廓--如何识别和修复表格识别中的虚线

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google ...

  9. java opencv bp网_基于Opencv自带BP网络的车标简易识别

    记得把这几点描述好咯:代码实现过程 + 项目文件结构截图 + 演示效果 1.准备工作 1.1 训练集和测试集准备 先将数据集手动划分成训练集和测试集,并分好类,比如第一类就放在文件夹名为0的文件夹下, ...

最新文章

  1. 数字图像处理实验(14):PROJECT 06-01,Web-Safe Colors
  2. 春节红包大战7年,BAT的变与不变
  3. 2019 surf project for a milestone
  4. linux判断值相等_Shell字符串比较相等、不相等方法小结【转】
  5. Oracle11g链接提示未“在本地计算机注册“OraOLEDB.Oracle”解决方法
  6. 搭建顶级域名下的个人博客网站
  7. python画超长图-利用Python画图,千变万化,各种画图技巧!
  8. P2799国王的魔镜
  9. Django项目实战之用户头像上传与访问
  10. 洛谷P3749 [六省联考2017]寿司餐厅
  11. java递归求和 1 n_Java递归求和1+2+3+...+n实例详解
  12. android:异步任务asyncTask介绍及异步任务下载图片(带进度条)
  13. Web项目实战(购物商城项目简单的实现)
  14. oracle财务管理系统有什么用,CSS_Oracle财务管理系统:会计业务周期,下面是使用Oracle财务管理系统 - phpStudy...
  15. 华为openEuler系统-虚拟机(VMware)安装
  16. C语言 吃鱼还是吃肉
  17. 电脑中的耳机插进去没有反应
  18. 章节十四:Scrapy框架
  19. turtle实现一团乱麻和甜甜圈
  20. 2011“国信蓝点杯“软件大赛模拟题java本科组(答案)

热门文章

  1. [USACO13JAN]Painting the Fence【扫描线】
  2. 单点登录有关跨域的点
  3. GO语言学习之路23
  4. shell命令:echo命令
  5. DIY audio player - 自定义audio播放器样式
  6. 老旧小区安防升级改造有机遇也有难度
  7. Greenplum 数据库一体机硬件配置正式开源
  8. Android 移动开发知识体系
  9. MATLAB的cat()函数
  10. html只能输入两位小数,JQuery控制input只能输入数字和两位小数(有关金额)代码...