图像处理中mask

转自 http://blog.csdn.net/meng4411yu/article/details/10033325

1、掩膜的定义

掩模是由0和1组成的一个二进制图像。当在某一功能中应用掩模时,1值区域被处理,被屏蔽的0值区域不被包括在计算中。通过指定的数据值、数据范围、有限或无限值、感兴趣区和注释文件来定义图像掩模,也可以应用上述选项的任意组合作为输入来建立掩模。(来自百度百科http://baike.baidu.com/view/2062299.htm#2

2、图像掩膜例子

图1 掩膜(mask)图像

这是一个1集中于图像中间的掩膜,有87393个1,也就是说其可用于傅立叶域采集到约1/3原图像数据(512*512=262144)。

3、百度文库还有一篇比较容易懂的关于掩膜的文档

http://wenku.baidu.com/view/bc1407d6b14e852458fb57cd.html

用选定的图像、图形或物体,对待处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。用于覆盖的特定图像或物体称为掩模或模板。光学图像处理中,掩模可以足胶片、滤光片等。数字图像处理中,掩模为二维矩阵数组,有时也用多值图像。

数字图像处理中,图像掩模主要用于:

①提取感兴趣区,用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0。

②屏蔽作用,用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计。

③结构特征提取,用相似性变量或图像匹配方法检测和提取图像中与掩模相似的结构特征。

④特殊形状图像的制作。用选定的图像、图形或物体,对待处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。用于覆盖的特定图像或物体称为掩模或模板。

4、那么我们就来看看一幅图像(傅立叶域)和掩膜相乘的结果(实验)

图2 原始(lena512*512)图像

图3 lena的傅立叶域图像

图4 与掩膜相乘之后的傅立叶域图像

图5 傅立叶反变换回来的图像

从图2和图5,我们可以分辨出来掩膜滤掉了部分信息,只选取了掩膜“感兴趣”的区域。

时间: 2024-11-08 04:20:21

图像处理中mask的相关文章

图像处理中Stride的理解

一行有 11 个像素(Width = 11), 对一个 32 位(每个像素 4 字节)的图像, Stride = 11 * 4 = 44. 但还有个字节对齐的问题, 譬如: 一行有 11 个像素(Width = 11), 对一个 24 位(每个像素 3 字节)的图像, Stride = 11 * 3 + 3 = 36. 为什么不是 Stride = 33? 因为它是按 4 字节对齐的. 根据上面道理, 我们可以手动计算 Stride 的值: 1.Stride = 每像素占用的字节数(也就是像素位

图像处理中Stride和Width的关系

一行有 11 个像素(Width = 11), 对一个 32 位(每个像素 4 字节)的图像, Stride = 11 * 4 = 44. 但还有个字节对齐的问题, 譬如: 一行有 11 个像素(Width = 11), 对一个 24 位(每个像素 3 字节)的图像, Stride = 11 * 3 + 3 = 36. 为什么不是 Stride = 33? 因为它是按 4 字节对齐的. 根据上面道理, 我们可以手动计算 Stride 的值: 1.Stride = 每像素占用的字节数(也就是像素位

批处理中set截取字符详解

set截取字符详解  在批处理中,set的功能有点繁杂:设置变量.显示环境变量的名及值.做算术运算.等待用户的输入.字符串截取.替换字符串,是我们常用的命令之一. 在字符串截取方面,新手因为没能注意到偏移量的问题,很容易提取到错误的字符串,因此,特开此帖,详细解释 set 截取字符的用法. 我们先来看一个例子: set str=123456789 现在,我需要提取变量 str 中的第一个字符,那么,该怎么写命令呢? set var=%str:~1,1%?我想,这很可能是很多粗懂set用法的新手们

PO状态为“处理中”的处理方法

EBS中经常会出现PO提交审批后状态为"处理中"的情况,此时PO创建人无法打开,审批人也无法打开,工作流等查看也无异常,可以使用一下SQL处理再进行审批: --set serveroutput on size 100000DECLARE CURSOR POTORESET IS SELECT WF_ITEM_TYPE, WF_ITEM_KEY, PO_HEADER_ID, SEGMENT1, REVISION_NUM, TYPE_LOOKUP_CODE FROM PO_HEADERS_A

批处理中Copy与Xcopy命令的区别(转自:www.jbxue.com)

有关批处理脚本中,copy命令与xcopy命令在用法上的一些区别.原文地址:http://www.jbxue.com/article/14536.html Copy与Xcopy的区别一,copy不能在有子目录存在的文件中拷贝文件的同时重命名此文件名说明,这里C:为根目录,bat为子目录),而xcopy能,不过会出现提示,当然可以加参数而不使它提示. C:\>copy c:\bat\hai.bat d:\bat\hello.bat提示:系统找不到指定的路径. 已复制 0 个文件.可以这样: C:\

关于cobol batch处理中的restart

批量文件处理中,如果因为某条数据错误导致了job abend,重新启动job再处理,几十分钟甚至几个小时的作业丢失对于分秒必争的batch cycle就是个噩梦! 尤其是对DB2和file同时处理的关键程序,job abend,DB2 roll back,但是VSAM file却是已写的已经写进去,已更新的已经更新,无法保持同步,再re-run,数据一片狼藉. 有一个很好的practice能够解决上述问题.注意,一下三部分是协同运作,从而保证DB2, VSAM, Sequential file保

批处理中set截取字符具体解释

set截取字符具体解释  在批处理中,set的功能有点繁杂:设置变量.显示环境变量的名及值.做算术运算.等待用户的输入.字符串截取.替换字符串,是我们经常使用的命令之中的一个. 在字符串截取方面,新手由于没能注意到偏移量的问题,非常easy提取到错误的字符串,因此,特开此帖,详解 set 截取字符的使用方法. 我们先来看一个样例: set str=123456789 如今,我须要提取变量 str 中的第一个字符,那么,该怎么写命令呢? set var=%str:~1,1%?我想,这非常可能是非常

异常处理中throws和throw的区别?

异常处理中throws和throw的区别: 1.作用不同:throw用于程序员自行产出并抛出异常:throws用于声明在该方法内抛出了异常 2.使用的位置不同:throw位于方法体内部,可以作为单独语句使用:throws必须跟在方法参数列表的后面,不能单独使用. 3.内容不同:throw抛出一个异常对象,且只能是一个:throws后面跟异常类,而且可以有多个 原文地址:https://www.cnblogs.com/suger-4/p/12192418.html

windows 异常处理中VEH、SEH、UEH、VCH 之间的关系

1.当异常交由用户处理时,按照以下顺序调用异常处理方式VEH-〉SEH-〉VCH .2.当VEH表示处理了异常,就不会传递给SEH,但是会传递异常给VCH .3.当VEH没有处理了,就会传递给SEH.4.当SEH的所有异常处理函数没能够处理异常,会调用默认的SEH(就是UEH,只是方式属于SEH)处理函数.5.当SEH处理了异常,从 except 开始执行,就不会再将异常传递给VCH .6.当SEH返回异常产生处执行,在返回之前会调用VCH .注意!!!在 *unix 中是用信号来处理的.所以如