学习形态学变换的时候,看到击中击不中变换一直百思不得其解,虽然他的定义写的很清楚明白,但是不知道具体是干嘛用的,按照自己的理解写了一个matlab小程序来试试。

1、击中击不中变换是形态学形状检测的基本工具,是用来查找像素局部模式的形态学运算符。‘局部’是指‘结构元素’的大小。

两个不相交集合B={B1,B2},称B为复合结构元素。则击中击不中变换为:

文字描述感觉更清楚:用B1去腐蚀X,然后用B2去腐蚀X的补集,得到的结果相减就是击中击不中变换。

2.用表格模拟击中击不中变换:黑色为要检测边缘的物体,B1B2为不相交结构元素

先用B1腐蚀黑色部分,再用B2腐蚀黑色以外的部分,得到:

浅绿色为B1腐蚀后,黑色物体所剩下的元素,深绿色为B2腐蚀后,黑色物体以外的图像所剩下的部分,黑灰为两次腐蚀所得到的边缘信息。

3.自己写的程序:

clc;
clear all;b1=strel('disk',5);
b2=strel('disk',5);
I=imread('woman.jpg');
I=rgb2gray(I);
H=im2bw(I);
J=~H;%原图取反
K=imerode(H,b1);%用算子1去腐蚀原图
L=imerode(J,b2);%用算子2去腐蚀原图的补集
K1=mat2gray(K);
L1=mat2gray(L);
R=mat2gray(H-K);%原图直接减去用算子1腐蚀的结果
M1=K-L;%击中击不中变换
M2=abs(K-L);%击中击不中变换的绝对值
R1=mat2gray(M1);
% R2=mat2gray(M2);%
R3=mat2gray(~M2);%击中击不中变换绝对值取反
figure(1);
subplot(231),imshow(H),title('原图灰度图');
subplot(232),imshow(K1);title('算子1腐蚀结果');
subplot(233),imshow(L1),title('算子2腐蚀结果');
subplot(234),imshow(R),title('原图直接减去腐蚀2结果');
subplot(235),imshow(R1),title('击中击不中变换结果');
subplot(236),imshow(R3),title('击中击不中变换取绝对值载取反结果');

得到的结果:

原图是:

相对于原图直接减去腐蚀的图像,击中击不中变换保留了更多的细节,边缘也更加明显突出。当然具体的击中击不中变换到底何用我还是没有明确的答案,暂时只能这么理解了。

击中击不中变换的作用理解相关推荐

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

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

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

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

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

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

  4. 形态学 - 击中-击不中变换

    目录 1. HMT 介绍 2. 代码实现 1. HMT 介绍 HMT全称是Hit miss transformation --- 击中 击不中变换,这里我们只对二值图像做处理 二值图像是图像的灰度值只 ...

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

    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 ...

  6. 击中-击不中变换(约束)—lhMorpHMTC

    击中-击不中变换(约束) 所采用的9*1 自定义结构为: 函数:lhMorpHMTC 说明:形态学约束击中-击不中变换,当为二值图像时,结果与lhMorpHMTB相同. 参数: src 输入图像,灰度 ...

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

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

  8. 二值形态学之击中击不中变换

    定义 应用 物体识别 细化 击中击不中变换(Hit Miss Transform ,HMT),是通过同时探测图像的内部和外部,进而获取更多的内外标记,体现更多信息的一个方法.他的应用有很多,特别是在图 ...

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

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

最新文章

  1. 使用 Python 和 OpenCV 构建 SET 求解器
  2. 推荐系统-03-简单基于用户的推荐
  3. Linux启动多个Oracle实例
  4. 选择查询 mysql_具体的mysql选择查询
  5. 官方一步解决各种Windows更新问题
  6. 算法题:找出一个数组中相加值最大的连续序列元素
  7. opencv精要(4)-fedora下的opencv安装及测试,codelite配置
  8. C#学习笔记五面向对象基础
  9. Xubuntu菜单删改条记
  10. javaScript设计模式之常用工厂模式
  11. 基于 HTML5 WebGL 的 3D 场景中的灯光效果
  12. 黑盒测试只会点点点 这些你都需要知道
  13. 提升研发效能没那么难,看优酷的最佳实践!
  14. Yii Framework2.0开发教程(3)数据库mysql入门
  15. Java迷宫小游戏,老程序员花一天时间完成,你可以吗?
  16. MySQL数据库getdate_MySQL数据库 DateTime 默认值是不是用getdate
  17. LZW压缩(解压缩)算法详解及源码
  18. 怎么把m4a转换成mp3,分享几个方法给大家!
  19. 将iphone手机屏幕画面投到Mac上
  20. 第三方插件的引用(4):JAVA网站接入QQ登录

热门文章

  1. 【软考题目】假设某磁盘的每个磁道划分成11个物理块,每块存放1个逻辑记录。
  2. Android手机拍照或从本地相册选取图片设置头像。适配小米、华为、7.0
  3. 【MySQL--03】表的操作
  4. 854计算机基础——备考建议+近年考点汇总
  5. js数组操作(push,pop,shift,unshift,slice,splice,concat,sort)
  6. BLE协议--ATT、GATT
  7. Word中怎么用MathType编辑公式
  8. 通过ip能查服务器型号,通过ip地址查服务器归属
  9. 关于五十音 片假名 平假名
  10. javascript 百度地图定位标点,定位详情