我对Leptonica有一个有趣的问题,我想知道其他SO成员是否见过。
我正在执行歪斜校正操作,并且存在严重的伪影问题,以至于没有人会正确地接受结果,这会使图像质量下降的幅度超过其带来的好处。
这是产生偏移校正操作的相关代码:
// 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,但这增加了我的工作流程中的转换次数,我宁愿避免。
之前是否有人遇到过/克服了这个问题?关于为什么发生这种情况/如何解决的任何指示?
最佳答案
您可以使用函数pixEndianByteSwap(pixbw);
来解决此问题。
关于ios - 修复Leptonica 1.68中的局部偏斜,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8167784/