首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DWT如何帮助图像增强?

DWT如何帮助图像增强?
EN

Stack Overflow用户
提问于 2015-07-03 09:38:22
回答 2查看 164关注 0票数 0

我在某个地方读到了去噪的地方,使用了4级小波变换。有人能让我明白这有多大帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-03 10:47:55

其基本思想是,对于“真”(无噪声)图像,DWT是稀疏的,即大部分“图像能量”集中在几个孤立的DWT桶中,而噪声的DWT也是噪声--它在DWT中的分布或多或少是均匀的。在噪声的海洋中找到几个稀疏的峰值要比重建有噪声的图像容易得多。

这里有一个快速而肮脏的例子来演示这个原理(下面是Mathematica源代码)。可以看出,Lena图像的DWT (离散小波变换)基本上是零的,噪声图像的DWT或多或少是纯噪声。lena +噪声的DWT是两个DWTs之和(即DWT是线性变换)。选择这个DWT中最大的N值,并从这些值中重建图像,在保留边缘的同时有效地去除噪声,但它也去除了这种特定小波(CDF)不能很好地表示的结构,即纹理和对角线边缘:

Mathematica代码:

代码语言:javascript
运行
复制
img = ImageResize[ExampleData[{"TestImage", "Lena"}], 256]
wf = CDFWavelet[];
noise = Image[
   RandomVariate[NormalDistribution[], ImageDimensions[img]]*0.05 + 
    0.5];
noisyImg = Image[ImageData[img] + ImageData[noise] - 0.5];
Grid[
 {
  {Image[img, ImageSize -> 256], " DWT => ", 
   Image[WaveletImagePlot[DiscreteWaveletTransform[img, wf]], 
    ImageSize -> 256]},
  {Image[noise, ImageSize -> 256], " DWT => ", 
   Image[WaveletImagePlot[DiscreteWaveletTransform[noise, wf]], 
    ImageSize -> 256]},
  {Image[noisyImg, ImageSize -> 256], " DWT => ", 
   Image[WaveletImagePlot[DiscreteWaveletTransform[noisyImg, wf]], 
    ImageSize -> 256]},
  {Image[noisyImg, ImageSize -> 256], 
   " Highest 5000 DWT coefficients => ", 
   Image[InverseWaveletTransform[
     WaveletThreshold[
      DiscreteWaveletTransform[noisyImg, wf], {"LargestCoefficients", 
       5000}]], ImageSize -> 256]}
  }]
票数 1
EN

Stack Overflow用户

发布于 2015-07-03 10:20:07

小波变换可以帮助你在类似傅里叶变换的情况下,通过压缩降低质量,从而使一些细部细节和噪声消失。

我建议你试试高斯模糊来过滤图像中的单调噪声。在我的例子中,它比包括小波在内的其他方法更有效。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31203497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档