1、顶帽变换

顶帽变换是在原图像基础上做出的形态学变换 原图像III,即用原图像减掉原图像的开运算
类似地,底帽变换就是用原图像减掉原图像的闭运算
代码实现具体例子:用顶帽变换实现对模糊文章的复原,具体包括如下几步:
1获取原图像,
2设计结构元,
3对原图像进行颜色翻转,
4对图像进行开运算,
5用图像减掉开运算后的图像,
6二值化后翻转颜色

I= cv.imread('pic/page760x900.jpg',0)Ic=255-I #翻转颜色K=np.ones((21,21),np.uint8)Ic_open=cv.morphologyEx(Ic,cv.MORPH_OPEN,K)Ic_tophat=cv.subtract(Ic,Ic_open)_,Ic_bin=cv.threshold(Ic_tophat,25,255,0)I_bin=255-Ic_binshow(I_bin)


OpenCV具有自带的顶帽、底帽运算cv.morphologyEx(img,cv.MORPH_TOPHAT,K) #顶帽运算

I= cv.imread('pic/page760x900.jpg',0)Ic=255-I #翻转颜色K=np.ones((21,21),np.uint8)Ic=cv.morphologyEx(img,cv.MORPH_TOPHAT,K) #顶帽运算_,Ic_bin=cv.threshold(Ic_tophat,25,255,0)#二值化I_bin=255-Ic_bin#颜色翻转show(np.hstack([I,I_bin]))

2、击中击不中变换

击中击不中变换用于精确匹配目标。
击中击不中变换是同样是在原图像基础上做出的形态学变换 原图像III,即用原原图像的腐蚀与互补图像(颜色相反)的腐蚀图像的交集
下面具体例子匹配右下正方形的中心,具体步骤:
1 设计两个与匹配图像大小相同的结构元,这两个结构元互补。
2 获取原图像
3 使用结构元K对原图像进行腐蚀
4 对原图像取反集
5 对反集图像用结构元K2进行腐蚀
6 对两个腐蚀图像取交集已获得目标
代码如下:

I=cv.imread('pic/rectangle_find35.png',-1)
K=np.zeros((37,37),np.uint8)
K[1:36,1:36]=1
Iek=cv.erode(I,K)
Ic=255-I
Kc=1-K
IceKc=cv.erode(Ic,Kc)
hitmiss=cv.bitwise_and(Iek,IceKc)

结构元K为:
原图像与捕获图像:

数字图像处理_07.2_(顶帽变换,击中击不中原理)相关推荐

  1. opencvsharp图像处理_腐蚀与膨胀,击中击不中变换(3)

    膨胀:dilate为核B对核A做卷积时,核B覆盖区域的像素最大值提取 腐蚀:erode 为核B对核A做卷积时,核B覆盖区域的像素最小值提取 击中击不中变换:有两个不相交集合B={B1,B2},用B1去 ...

  2. OpenCV-Python击中击不中HITMISS形态变换详解

    ☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 一.引言 从学习完黑帽变换后的这段时间,都在学习和钻研基本形态变换的最后一个变换–击中击不 ...

  3. 区域填充与击中击不中变换

    1,区域填充 %区域填充 clear,clc,close all; BW1 = logical([1 0 0 0 0 0 0 0; 1 1 1 1 1 0 0 0;1 0 0 0 0 0 1 0; 1 ...

  4. 图像形态学——击中击不中

    说明:关于击中击不中问题还有很多疑点,代码实现存在问题,日后遇到在详细解决. 击中击不中变换 击中击不中变换是形状检测的一个基本工具. 设X为目标图像,B为结构元素,且B由两个不相交的部分 B 1 B ...

  5. 数字图像处理 击中击不中变换

    参考链接 目的: 击中击不中变换就是在A图像上找到和B图像一致的那块区域,举个例子就是:你拿着一张A图片的一部分,你需要在A图像上找到这张图片在A图片上的位置在哪(注意,这里找到的位置,都是一个点,也 ...

  6. MATLAB--数字图像处理 击中击不中变换

    击中击不中变换 原理 击中击不中变换(HMT)需要两个结构元素B1和B2,合成一个结构元素对B=(B1,B2) 一个用于探测图像内部,作为击中部分;另一个用于探测图像外部,作为击不中部分.显然,B1和 ...

  7. 数字图像处理入门(一) 击中击不中

    形态学的击中和击不中是形状检测的基本工具. 其基本原理为:(集合X为原二值化图像的像素集合,对X取反求得~X(非X, Y表示), 选择的结构元为s1, 对结构元s1取反的结构元为s2) 首先对用s1对 ...

  8. 详解图像形态学中的击中击不中变换操作(HMT),并提醒大家OpenCV4中的击中击不中变换操作是有问题的

    大家看这篇博文前可以先看一看下面这篇博文,下面这篇博文是这篇博文的基础: 详解图像形态学操作之图形的腐蚀和膨胀的概念和运算过程,并利用OpenCV的函数erode()和函数dilate()对图像进行腐 ...

  9. 【youcans 的 OpenCV 例程 200 篇】120. 击中-击不中变换

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程 2 ...

  10. OpenCV实现击中击不中变换和形态学细化

    1 击中击不中变换 1.1 HMT概述 形态学Hit-or-Miss是形状检测基本工具,只要结构元设置得当,就可以检测一些基本的形状图案,HMT变换只能作用于二值图像,结构元(核)元素值由0.1.-1 ...

最新文章

  1. Asp.Net中验证控件简单分析
  2. 计算机●编程语言●JAVA
  3. python爬取论坛付费内容_Python爬虫抓取论坛关键字过程解析
  4. inputstreamreader未关闭会导致oom_ThreadLocal 一定会导致内存泄露?
  5. 数组的应用 冒泡排序
  6. vue 高阶面试题_大厂面试题合集
  7. python读取一个文件的大小_Python-读取文件的大小
  8. 末学者笔记--Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站
  9. 防火墙虚拟系统互访配置实例
  10. 记录这两天所学的东西
  11. 有关SQLite数据库的一些实证数据,有一定历史比较和参考意义
  12. Java程序设计基础——cmd编译运行java文件详细步骤
  13. 细胞自动机 c语言程序,细胞自动机之生命游戏
  14. C专家编程(学习笔记)_第10章 再论指针
  15. windows mobile/wince 大容量存储驱动实现介绍
  16. Unity3D IAP Google支付
  17. Html设置表格撑开,【CSS】表格或div被撑开的解决办法
  18. Python学习笔记(4)~Python基础练习之常用内置函数(1-10)
  19. 内存泄露方式有哪些和如何查询内存泄露?
  20. I.MX7D工控板 开发方案

热门文章

  1. 微信订阅号和公众号的区别
  2. 为什么阿里云域名解析48小时还没有生效?
  3. Unity 资源池,对象池,Object Poor
  4. countif和sum套用_COUNTIF与SUMIF函数的常见用法
  5. 【3D目标检测】open3D安装与使用
  6. MySQL临时表详细解释
  7. 服务器使用笔记本网络连接外网
  8. Web Polygraph (WebAxe-4) 测试反向代理缓存服务器
  9. Python解决数字棒球游戏
  10. 【风险管理】(第二篇)风险管理分析及预测方法