我對Leptonica有一個有趣的問題,我想知道其他SO成員是否看過。修復Leptonica中的本地扭曲1.68
我正在做一個歪斜操作,並有嚴重的僞像問題,以至於沒有人會正確地接受結果,這會降低圖像質量而不是降低圖像質量。
下面是產生偏斜校正操作的相關代碼:
// Make a black and white version for deskew calculations
l_int32 thresh;
PIX * deskewbw = pixMaskedThreshOnBackgroundNorm(pix,NULL,10,15,25,10,2,2,0.1,&thresh);
NSLog(@"Used threshold of %d to normalize image for deskew",thresh);
// Find the local skew
PTA * ptas, *ptad;
pixGetLocalSkewTransform(deskewbw, 0, 0, 0, 0.0, 0.0, 0.0, &ptas, &ptad);
// Cleanup the first B/W version
pixDestroy(&deskewbw);
// Deskew the original image
PIX * deskewgray = pixProjectivePtaGray(pix, ptad, ptas, 128);
// Reduce the deskewed original image to B/W
pixbw = pixMaskedThreshOnBackgroundNorm(deskewgray, NULL, 10, 15, 25, 10, 2, 2, 0.1, &thresh);
不管我用這個,或者pixDeskewLocal功能(它類似的東西),我得到一個隔行線影響一些很醜陋的結果:
只是爲了對比,原來這裏是(稍微傾斜)圖像:
無論原始圖像是黑色還是白色的前景,並且在偏移更多的區域更嚴重,都會發生這種情況。在這一點上,我只是試圖讓iOS爲我做這個渲染,以避免Leptonica執行這個特定的操作,但是這增加了我工作流程中的轉換次數,如果可能,我寧願避免。
有沒有其他人遇到/克服過這個問題?關於爲什麼發生這種情況的任何指針/如何解決它?
馬克,我希望你四個月前能幫助解決這個問題。謝謝。 – SplinterReality