使用Python,OpenCV进行形态学操作
使用Python,OpenCV进行形态学操作)
- 1. 效果图
- 2. 原理
- 3. 源码
- 3.1 [制作logo源码](https://blog.csdn.net/qq_40985985/article/details/116025825)
- 3.2 腐蚀膨胀打开闭合形态梯度源码
- 3.3 白帽黑帽操作源码
- 3.4 自定义内核
- 参考
这篇博客将介绍如何使用Python,OpenCV应用形态学操作。
包括:
- 腐蚀(Erosion)
- 膨胀(Dilation)
- 打开(Opening)
- 闭合(Closing)【在封闭前景对象内部的小孔或对象上的小黑点时非常有用。】
- 形态梯度(Morphological gradient)
- 黑帽(Black hat)
- 白帽(Top hat (also called “White hat”))
形态学操作是应用于灰度或二值图像的图像处理变换。这些操作需要一个结构元素,用于定义应用该操作的像素的邻域。更具体地说,可以使用形态学操作应用于图像内部的形状和结构,以调整输出图像。(例如增加/减少图像中的物体大小,打开/缩小物体之间的间隙)
形态学运算通常被用作更强大的计算机视觉解决方案(如OCR、自动车牌识别(ANPR)和条形码检测)的预处理步骤。 巧妙地使用形态学运算可以避免更复杂(和计算昂贵)的机器学习和深度学习算法。(比如图像中的条码检测,仅使用形态学操作就可以完成~)
1. 效果图
原图 VS 腐蚀1 VS 腐蚀2 VS 腐蚀3 VS 腐蚀4次效果图如下:
可以看到,随着腐蚀迭代次数的增加,越来越多的徽标被腐蚀掉。
腐蚀对于从图像中移除小斑点或断开两个连接的组件是最有用的。
原图 VS 膨胀1 VS 膨胀2 VS 膨胀3次效果图如下:
可以看到应用了3次迭代的膨胀,徽标中所有字母的间隙都已接和。
膨胀会扩大前景区域。当连接对象的断开部分时,膨胀特别有用。
打开操作类似于腐蚀操作,去掉小斑点的同时可能会“打开”图像上的孔,如下图所示:
当我们使用大小为5的内核时×5.小而随机的斑点几乎完全消失了。当它达到一个7大小的内核时,打开操作不仅去除了所有的随机斑点,而且还“打开”了字母“s”,“n”和字母“a”上的孔。
闭合是打开的相反操作,闭合是膨胀后的腐蚀。闭合用于闭合对象内部的小孔,小黑点是很有效,或将组件连接在一起。
可以看到闭合操作开始桥接徽标中字母之间的间隙。
形态学梯度效果图如下:
形态学梯度可以使得徽标的轮廓清晰地显示出来。
白帽操作效果图如下:
白帽子
使用Python,OpenCV进行形态学操作相关推荐
- opencv —— morphology形态学操作函数讲解(python)
opencv -- morphology形态学操作函数讲解 目录 opencv -- morphology形态学操作函数讲解 形态学滤波:morphologyEx 函数 开运算:先腐蚀后膨胀. 闭运算 ...
- Python+OpenCV:形态学变换
Python+OpenCV:形态学变换 理论 形态学变换是基于图像形状的一些简单操作. 它通常在二值图像上执行.它需要两个输入,一个是我们的原始图像,另一个是结构元素(structuring elem ...
- OpenCV通过形态学操作提取水平线和垂直线
OpenCV通过形态学操作提取水平线和垂直线 通过形态学操作提取水平线和垂直线 目标 理论 形态学运算 结构元素 代码 说明/结果 载入图片 灰阶 灰度到二进制图像 输出图像 结构要素 优化边缘/结果 ...
- Python OpenCV 图片模糊操作 blur 与 medianBlur
Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧. Python OpenCV 基础知识铺垫 函数原型介绍 均值模糊 中值模糊 2D 卷积(图像滤波),自定义模糊 橡皮擦的小 ...
- opencv 的形态学操作,cv2.erode,cv.dilate等。
opencv 的形态学操作,cv2.erode,cv.dilate,cv2.morphologyEx的使用. 一.膨胀 cv2.erode(img, kernel_size) 函数参数, img是输入 ...
- 用openCV实现形态学操作
尊师: © Fu Xianjun. All Rights Reserved. 老样子先进行把图片放入文件夹如何用openCV打开 形态学操作(移除噪声) 先使用开运算去除图像中的细小白色噪点,然后通过 ...
- 【图像处理】——Python OpenCV实现形态学膨胀、腐蚀开闭操作(可以用于图像滤波、图像分割等)
转载博客请注明详细地址,谢谢 本文讲了形态学基本操作膨胀腐蚀开闭操作的原理 本文讲解了用OpenCV-Python实现形态学操作 目录 一.形态学简述 1.简介 2.一些基本定义 3.结构元素 (1) ...
- OPenCv java 形态学操作(12)
创建图片 Mat mat=new Mat();mat.create(new Size(516,516),CvType.CV_8UC3);Imgproc.putText(mat, "hello ...
- Python图像处理:形态学操作
来源:DeepHub IMBA本文约1400字,建议阅读5分钟 形态学的操作主要是去除影响图像形状和信息的噪声.形态学运算在图像分割中非常有用,可以得到无噪声的二值图像. 形态学方法 当图像经过预处理 ...
最新文章
- Redis缓存使用技巧和设计方案
- tidb mysql登录_TiDB 忘记密码如何登陆
- Adobe Captivate 2019中文版
- 单片微型计算机简称单片机是指集成,什么是单片微型计算机 -解决方案-华强电子网...
- 前端学习(2988):vue+element今日头条管理--使用技术栈
- 一个form 如何做两次提交_如何做一个自信魅力的女人
- 多模态AI开发套件HiLens Kit:超强算力彰显云上实力
- Redis入门到入土教程_1
- 对立与统一(期货反向跟单-交易员培训法则)
- 学生党专用计算机,学生党平价笔记本电脑 最适合学生的高性价比电脑推荐
- style标签中的几个属性
- 博客导航——一站式搜索(所有博客的汇总帖)【微信开发】
- 给热心老哥搭个窝,2021年30分钟用Discourse搭建新一代BBS论坛站全攻略
- Linux 网络协议栈开发—— 二层桥实现原理
- python scripts 目录空
- 【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
- GitHub最有毒的仓库
- 是指用计算机帮助各类,电子商务师
- 开放标准驱动工业物联网创新
- server系统中继服务器驱动,rustdesk-server(中继服务器)
热门文章
- Linux服务器上监控网络带宽的18个常用命令
- python正确方法,方法 - 廖雪峰的官方网站
- Android 计时器 Chronometer
- 使用属性position:fixed的时候如何才能让div居中
- oracle sql 获取本季度所有月份,上季度所有月份
- 【分布式架构】“高并发” -- 详解
- 2018考研英语:10篇必背的真题文章
- Activiti——准备开发环境(一)
- linux安装语言总是waiting,node的serialport在arm的Linux安装血泪史之我太难了
- bitset类型, 标准库类型