粉笔字图片处理
Opencv, Python, Tensorflow
python = 3.6 opencv = 4.2
OS is win10, Code & Run in Pycharm Community
- 去除图片中非黑板部分
- 二值化图片
- 识别汉字部分
- 裁剪并补充汉字部分为正方形,并按从左到右、从上到下的顺序编号
序号 | 描述 | 备注 |
---|---|---|
1 | 黑板裁剪 | 裁剪图片,去除图片中非黑板部分 |
2 | 板书OCR | 手写汉字数字识别,以命名裁剪的板书字 |
3 |
序号 | 描述 | 备注 |
---|---|---|
0 | 点多边形轮廓发现 | 来自 |
1 | 古籍裁剪 | 原链接 |
2 | python3.7官方中文文档 | |
3 | Canny边缘检测 | 来自 |
4 | pytesseract库 | Python-tesseract是用于python的光学字符识别(OCR)工具 |
Python-tesseract是用于python的光学字符识别(OCR)工具。也就是说,它将识别并“读取”图像中嵌入的文本。Python-tesseract是Google Tesseract-OCR Engine的包装。它也可以用作tesseract的独立调用脚本,因为它可以读取Pillow和Leptonica图像库支持的所有图像类型,包括jpeg,png,gif,bmp,tiff等。此外,如果用作脚本,Python-tesseract将打印识别的文本,而不是将其写入文件。
getStructuringElement
函数会返回指定形状和尺寸的结构元素。
这个函数的第一个参数表示内核的形状;
矩形:MORPH_RECT;
交叉形:MORPH_CROSS;
椭圆形:MORPH_ELLIPSE;
第二和第三个参数分别是内核的尺寸以及锚点的位置。 一般在调用erode以及dilate函数之前,先定义一个Mat类型的变量来获得getStructuringElement函数的返回值。 对于锚点的位置,有默认值Point(-1,-1),表示锚点位于中心点。
element形状唯一依赖锚点位置,其他情况下,锚点只是影响了形态学运算结果的偏移。
黑板裁剪或许使用canny等边缘检测,然后找到面积最大的矩形