低频抑制图像后如何获得清晰的图像?

Aru*_*iRC 6 opencv image-processing computer-vision

我正在抑制Dicrete余弦变换(DCT)域中图像中几个(不相等)块的低DC频率.之后进行逆DCT以仅仅保留高频部分来恢复图像.

  cvConvertScale( img , img_32 ); //8bit to 32bit conversion 
cvMinMaxLoc( img_32, &Min, &Max ); 
cvScale( img_32 , img_32 , 1.0/Max ); //quantization for 32bit 

cvDCT( img_32 , img_dct , CV_DXT_FORWARD ); //DCT 
//display( img_dct, "DCT");

cvSet2D(img_dct, 0,  0, cvScalar(0)); //suppress constant background

//cvConvertScale( img_dct, img_dct, -1, 255 ); //invert colors

cvDCT( img_dct , img_out , CV_DXT_INVERSE ); //IDCT
//display(img_out, "IDCT");
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 在此输入图像描述 在此输入图像描述

目的是识别和隔离图像中先前检测到的区域中存在于高频中的元素.然而,在一些情况下,文本非常薄且微弱(低对比度).在这些情况下,IDCT生成的图像非常暗,甚至高频部分也变得太微弱,无法进一步分析工作.

有什么操作可以让我们在背景抑制后从IDCT获得更清晰的图像?CvEqualizeHist()发出太大的噪音.

编辑:

整个图片上传为belisarius问.低频抑制不是在整个图像上进行,而是在设置为文本/低频部分周围的最小边界矩形的小ROI上进行.

Dr.*_*ius 4

根据您的示例图像,让我们从一种可能的策略开始隔离文本。

代码在 Mathematica 中。

(* Import your image*)
i1 = Import["https://i.stack.imgur.com/hYwx8.jpg"];
i = ImageData@i1;
Run Code Online (Sandbox Code Playgroud)

(*Get the red channel*)
j = i[[All, All, 1]]
(*Perform the DCT*)
t = FourierDCT[j];
(*Define a high pass filter*)
truncate[data_, f_] :=
  Module[{i, j},
   {i, j} = Floor[Dimensions[data]/Sqrt[f]];
   PadRight[Take[data, -i, -j], Dimensions[data], 0.]
   ];

(*Apply the HP filter, and do the reverse DCT*)
k = Image[FourierDCT[truncate[t, 4], 3]] // ImageAdjust
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

(*Appy a Gradient Filter and a Dilation*)
l = Dilation[GradientFilter[k, 1] // ImageAdjust, 5]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

(*Apply a MinFilter and Binarize*)
m = Binarize[MinFilter[l, 10], .045]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

(*Perform a Dilation and delete small components to get a mask*)
mask = DeleteSmallComponents@Dilation[m, 10]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

(*Finally apply the mask*)
ImageMultiply[mask, Image@i]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

待续 ...

编辑

回答评论中的问题:

描述GradientFilter位于“更多信息”下:http://reference.wolfram.com/mathematica/ref/GradientFilter.html

描述MinFilter位于“更多信息”下:http ://reference.wolfram.com/mathematica/ref/MinFilter.html