我在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");
的目的是识别和隔离元件,其是存在于从图像中先前曾检测到的区域的高频率。然而,在几种情况下,文字非常薄弱(低对比度)。在这些情况下,IDCT提供的图像太暗以至于即使高频部分变得太弱以至于不能进一步分析工作。
有什么操作让我们可以在背景抑制后从IDCT获得更清晰的图像? CvEqualizeHist()
给出了太多的噪音。
编辑:
Whole picture这里上传的贝利萨留问道。低频抑制不是在整个图像上进行,而是在文本/低频部分周围设置为最小边界矩形的小ROI上进行。
那些是验证码? – 2011-06-08 07:04:47
将DCT系数'(0,0)'设置为零不会消除任何噪音。它将只用一个常量(这是原始图像的平均灰度级)减去整个图像的灰度级。新图像将包含与原始图像一样多的高频噪声。 – rwong 2011-06-08 07:10:50
在截图中的三个测试样本中,我认为一个简单的阈值应该能够将文本与背景分开。你可能想看看二进制阈值算法。 – rwong 2011-06-08 07:15:29