У меня есть интересная проблема с Лептоникой, которая мне интересует, видели ли другие участники 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 для этой конкретной операции, но это увеличивает количество конверсий в моем рабочем процессе, которых я бы предпочел избежать, если это возможно.
Кто-нибудь еще сталкивался / преодолевал эту проблему раньше? Любые указатели на то, почему это происходит / как это исправить?