??xml version="1.0" encoding="utf-8" standalone="yes"?>
L(fng)和o(h)波的区别Q在数字信号处理的理ZQ卷l可以说是一U数学运,而o(h)波是一U信号处理的Ҏ(gu)。卷U就像加权乘法一P你能说o(h)波和加权乘法是一L(fng)吗,昄不行Q但是o(h)波最l是有乘法来实现的?/p>
自适应滤L是滤L所用的模板pL?x)根据图像不同位|自动调整?br>中值o(h)?median filter)单的说就是:(x)一个窗(window)中心的象素值就是这个窗包含的象素中处于中间位置的象素倹{?br>均值o(h)?mean filter)是一个窗中心的象素值就是这个窗包含的象素的q_倹{?br>I间频率主要是指囑փ的^滑或_糙E度。一般可认ؓ(f)Q高I间频率区域U?#8220;_糙”Q即囑փ的亮度值在范围内变化很大Q?#8220;qx”区,囑փ的亮度值变化相对较?yu),如^滑的水体表面{。低通o(h)波主要用于加强图像中的低频成分,减弱高频成分Q而高通o(h)波则正好相反Q加强高频细节,减弱低频l节Q简单地Ԍ(x)高通o(h)波处理过的图像更?#8220;_糙”。高通o(h)波顾名思义是让频率高的通过Q囑փh锐化效果Q低通o(h)波则恰好相反了,它是使低频通过Q囑փhqx的效果?/p>
•模板的定?–所谓模板就是一个系数矩?–模板大小Q经常是奇数Q如Q?3x3 5x5 7x7 –模板pL: 矩阵的元?w1 w2 w3 w4 w5 w6 w7 w8 w9
I域qo(h)?qing)过滤器的定义?x)使用I域模板q行的图像处理,被称为空域过滤?br>
钝化qo(h)器的主要用?br>1Q对大图像处理前Q删L用的l小l节
2Q连接中断的U段和曲U?br>3Q降低噪?br>4Q钝化处理,恢复q分锐化的图?br>5Q图像创艺(阴媄(jing)、Y辏V朦胧效果)(j)
~点Q?br>如果囑փ处理的目的是去除噪音Q那么,低通o(h)波在去除噪音的同时也钝化了边和尖锐的l节Q但是中值o(h)波算法的特点Q在去除噪音的同Ӟ可以比较好地保留边的锐度和图像的l节锐化qo(h)器的主要用?br>1Q印刷中的细微层ơ强调。I补扫描、挂|对囑փ的钝?br>2Q超声探成象,分L率低Q边~模p,通过锐化来改?br>3Q图像识别中Q分割前的边~提?br>4Q锐化处理恢复过度钝化、暴光不的囑փ
5Q图像创艺(只剩下边界的Ҏ(gu)囑փQ?br>6Q尖端武器的目标识别、定?/p>
qo(h)器效果的分析
1Q常数或变化q缓的区域,l果?或很,囑փ很暗Q亮度被降低?br>2Q在暗的背景上边~被增强?br>3Q图像的整体Ҏ(gu)度降低了
4Q计时?x)出现负|?处理为常?/p>
基本高通空域o(h)波的~点和问?br>高通o(h)波在增强了边的同Ӟ丢失了图像的层次和亮?br>
1. pȝ何时发送WM_PAINT消息Q?/p>
pȝ?x)在多个不同的时机发送WM_PAINT消息Q当W一ơ创Z个窗口时Q当改变H口的大时Q当把窗口从另一个窗口背后移出时Q当最大化或最化H口Ӟ{等Q这些动作都是由 pȝ理的,应用只是被动地接收该消息Q在消息处理函数中进行绘制操作;大多数的时候应用也需要能够主动引发窗口中的绘制操作,比如当窗口显C的数据改变的时候,q一般是通过InvalidateRect?InvalidateRgn函数来完成的。InvalidateRect和InvalidateRgn把指定的区域加到H口的Update Region中,当应用的消息队列没有其他消息Ӟ如果H口的Update Region不ؓ(f)I时Q系l就?x)自动生WM_PAINT消息?/p>
pȝZ么不在调用Invalidate时发送WM_PAINT消息呢?又ؓ(f)什么非要等应用消息队列为空时才发送WM_PAINT消息呢?q是因ؓ(f)pȝ把在H口中的l制操作当作一U低优先U的操作Q于是尽 可能地推后做。不q这样也有利于提高绘制的效率Q两个WM_PAINT消息之间通过InvalidateRect和InvaliateRgn使之失效的区域就?x)被累加hQ然后在一个WM_PAINT消息中一ơ得?更新Q不仅能避免多次重复地更新同一区域Q也优化了应用的更新操作。像q种通过InvalidateRect和InvalidateRgn来ɽH口区域无效Q依赖于pȝ在合适的时机发送WM_PAINT消息的机 制实际上是一U异步工作方式,也就是说Q在无效化窗口区域和发送WM_PAINT消息之间是有延迟的;有时候这Ugqƈ不是我们希望的,q时我们当然可以在无效化H口区域后利?br>SendMessage 发送一条WM_PAINT消息来强制立即重?br>【注解:(x)SendMessage?x)block到被发送的消息被处理完才返回,但是WM_PAINT消息的处理时间又是用户不可控制的Q?#8220;GetMessage returns the WM_PAINT message when there are no other messages in the application's message queue, and DispatchMessage sends the message to the appropriate window procedure. ”(MSDN原文)Q那么也是_(d)你调用SendMessage之后Q这个方法需要等待多长时间才能返回是不可控制的。所以MSDN不推荐用L(fng)接发送WM_PAINT消息Q?#8220;The WM_PAINT message is generated by the system and should not be sent by an application”?br>Q但不如使用Windows GDI为我们提供的更方便和强大的函敎ͼ(x)UpdateWindow和RedrawWindow。UpdateWindow?x)检查窗口的Update RegionQ当其不为空时才发送WM_PAINT消息QRedrawWindow则给我们更多的控Ӟ(x)是否重画非客户区和背景,是否L发送WM_PAINT消息而不Update Region是否为空{?/p>
2. BeginPaint
BeginPaint和W(xu)M_PAINT消息紧密相关。试一试在WM_PAINT处理函数中不写BeginPaint?x)怎样Q程序会(x)像进入了一个死循环一栯到惊人的CPU占用率,你会(x)发现E序d处理一个接 一个的WM_PAINT消息。这是因为在通常情况下,当应用收到WM_PAINT消息ӞH口的Update Region都是非空的(如果为空׃需要发送WM_PAINT消息了)(j)QBeginPaint的一个作用就是把该Update Region|ؓ(f)I,q样如果不调用BeginPaintQ窗口的Update Region׃直不为空Q如前所qͼpȝ׃(x)一直发送WM_PAINT消息?/p>
BeginPaint和W(xu)M_ERASEBKGND消息也有关系。当H口的Update Region被标志ؓ(f)需要擦除背景时QBeginPaint?x)发送WM_ERASEBKGND消息来重画背景,同时在其q回信息里有一个标志表明窗口背景是否被重画q。当我们用InvalidateRect和InvalidateRgn来把指定区域加到Update Region中时Q可以设|该区域是否需要被擦除背景Q这样下一个BeginPaintq道是否需要发送WM_ERASEBKGND消息了?/p>
另外要注意的一Ҏ(gu)QBeginPaint只能在WM_PAINT处理函数中用?/p>