我在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