相关疑难解决方法(0)

拆分扫描文档中的文本行

我试图找到一种方法来打破已经自适应阈值化的扫描文档中的文本行.现在,我存储文档为无符号的整数0到255的像素值,并且这是我在像素的平均值中的每一行,以及我基于像素值的平均值是否是线分割成的范围大于250,然后我取每个范围的线的中位数.但是,这种方法有时会失败,因为图像上可能会出现黑色斑点.

是否有更加抗噪的方式来完成这项任务?

编辑:这是一些代码."扭曲"是原始图像的名称,"剪切"是我想要分割图像的地方.

warped = threshold_adaptive(warped, 250, offset = 10)
warped = warped.astype("uint8") * 255

# get areas where we can split image on whitespace to make OCR more accurate
color_level = np.array([np.sum(line) / len(line) for line in warped])
cuts = []
i = 0
while(i < len(color_level)):
    if color_level[i] > 250:
        begin = i
        while(color_level[i] > 250):
            i += 1
        cuts.append((i + begin)/2) # middle of the whitespace region
    else:
        i += 1
Run Code Online (Sandbox Code Playgroud)

编辑2:添加了示例图像 在此输入图像描述

python ocr opencv scikit-image

28
推荐指数
2
解决办法
1万
查看次数

将opencv重映射代码从c++转换为python

我正在尝试将 c++ opencv cv2.remap 代码转换为 python。我没有收到任何错误,但结果不符合预期。我正在放大图像

代码

int main()
{
    Mat img = imread("captcha1.jpg");
    float phase = -0.8 * CV_PI;
    float omega = 2.0 * CV_PI / img.cols;
    float amp = 15;
    Mat_<Vec2f> proj(img.size());
    for (int y=0; y<img.rows; y++) {
        for (int x=0; x<img.cols; x++) {
            float u = 0;
            float v = sin(phase + float(x) * omega) * amp;
            proj(y,x) = Vec2f(float(x) + u, float(y) + v);
        }
    }
    Mat corr;
    cv::remap(img, corr, proj, cv::Mat(), INTER_LINEAR);
    imshow("in",img);
    imshow("out",corr);
    waitKey(); …
Run Code Online (Sandbox Code Playgroud)

c++ opencv remap python-3.x opencv3.0

1
推荐指数
1
解决办法
1075
查看次数

如何使用python扭曲图像以形成路径形状?

我是python的新手。我想扭曲图像,使其填充闭合路径(闭合路径和导入的图像如下图所示)。给定的封闭路径具有截断饼的形状。截断饼的外径为15个单位,内径为5个单位,该饼的角度为60度。我添加了外部形状作为示例。是否可以在任何类型的封闭路径内填充图像。您能否建议使用python库,或者如果您可以共享一些代码,那就太好了。我还尝试使用角点检测算法并使它们坚持使用地图功能,但我不能。 两张图片

我需要的图像

python opencv image-processing

0
推荐指数
1
解决办法
497
查看次数