如何使用Leptonica库对单个字符进行偏斜校正

时间:2018-08-05 10:02:15

标签: opencv image-processing leptonica

我想在此图像处理程序中使用 leptonica(http://leptonica.org/库而不是 opencv ,并且希望对单个字符进行去歪斜(更多)特别是一个数字)。我尝试了pixDeskew()方法,但是没有用(警告Warning in pixFindSkewSweepAndSearchScorePivot: max found at sweep edge无效)。我的猜测是我的图像输入很小,只有一个字符,但是pixDeskew()处理文本页面。

我在opencv中使用了以下方法来获得不错的结果:

Mat deskew(Mat& img) {
    Moments m = moments(img);
    if(abs(m.mu02) < 1e-2)
        return img.clone();
    double skew = m.mu11 / m.mu02;
    Mat warpMat = (Mat_<double>(2, 3) << 1, skew, -0.5 * img.cols * skew, 0, 1 , 0);
    Mat imgOut = Mat::zeros(img.rows, img.cols, img.type());
    warpAffine(img, imgOut, warpMat, imgOut.size(), WARP_INVERSE_MAP|INTER_LINEAR);
    return imgOut;
}

可在Internet上(opencv教程网站的某些页面上)找到代码块,其中包含一些opencv函数。但是,我非常想使用leptonica而不是opencv复制此内容。任何想法都欢迎。谢谢。

0 个答案:

没有答案