python实现图片中文字分割效果

本文实例为大家分享了python实现图片中文字分割的具体代码,供大家参考,具体内容如下

1、原始图片(包含数字):

结果图:

2、原始图片(包含文字):

结果图:

3、代码如下:

import cv2
import numpy as np

path = 'test.jpg'
root = 'output\\'
# 图像resize
dsize = 36
img = cv2.imread(path)
data = np.array(img)
height = data.shape[0]
width = data.shape[1]
# 设置最小的文字像素高度
min_val = 10

start_i = -1
end_i = -1
# 存放每行的起止坐标
rowinfo = []

# 行分割
for i in range(height):

 # 行中有字相关信息
 if (not data[i].all()):
 end_i = i
 if(start_i < 0):
  start_i = i
  pass
 # 行中无字相关信息
 elif (data[i].all() and start_i >= 0):
 if(end_i - start_i >= min_val):
  rowinfo.append((start_i, end_i))
  pass
 start_i, end_i = -1, -1
print(rowinfo)

# 列分割
start_j = -1
end_j = -1
# 最小文字像素宽度
min_val_word = 5
# 分割后保存编号
number = 0
for start, end in rowinfo:
 for j in range(width):
 # 列中有字相关信息
 if(not data[start: end, j].all()):
  end_j = j
  if(start_j < 0):
   start_j = j
   pass
 # 列中无字信息
 elif(data[start: end, j].all() and start_j >= 0):
  if(end_j - start_j >= min_val_word):
  img = data[start:end, start_j: end_j]
  im2save = cv2.resize(img, (dsize, dsize)) #归一化处理
  cv2.imwrite(root + '%d.jpg' % number, im2save)
  number += 1
  pass
  start_j, end_j = -1, -1

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python opencv实现图片旋转矩形分割

    有时候需要对有角度的矩形框内图像从原图片中分割出来.这里的程序思想是,先将图片进行矩形角度的旋转,使有角度的矩形处于水平状态后,根据原来坐标分割图片. 参考:python opencv实现旋转矩形框裁减功能 修改原来的程序: 1.旋转函数的输入仅为矩形的四点坐标 2.角度由公式计算出来 3.矩形四点pt1,pt2,pt3,pt4由txt文件读入 4.在旋转程序中还处理了顺时针和逆时针及出现矩形框翻转的问题. 代码: # -*- coding:utf-8 -*- import cv2 from m

  • Python+opencv 实现图片文字的分割的方法示例

    实现步骤: 1.通过水平投影对图形进行水平分割,获取每一行的图像: 2.通过垂直投影对分割的每一行图像进行垂直分割,最终确定每一个字符的坐标位置,分割出每一个字符: 先简单介绍一下投影法:分别在水平和垂直方向对预处理(二值化)的图像某一种像素进行统计,对于二值化图像非黑即白,我们通过对其中的白点或者黑点进行统计,根据统计结果就可以判断出每一行的上下边界以及每一列的左右边界,从而实现分割的目的. 下面通过Python+opencv来实现该功能 首先来实现水平投影: import cv2 impor

  • python验证码识别教程之利用投影法、连通域法分割图片

    前言 今天这篇文章主要记录一下如何切分验证码,用到的主要库就是Pillow和Linux下的图像处理工具GIMP.首先假设一个固定位置和宽度.无粘连.无干扰的例子学习一下如何使用Pillow来切割图片. 使用GIMP打开图片后,按 加号 放大图片,然后点击View->Show Grid来显示网格线: 其中,每个正方形边长为10像素,所以数字1切割坐标为左20.上20.右40.下70.以此类推可以知道剩下3个数字的切割位置. 代码如下: from PIL import Image p = Image

  • python验证码识别教程之利用滴水算法分割图片

    滴水算法概述 滴水算法是一种用于分割手写粘连字符的算法,与以往的直线式地分割不同 ,它模拟水滴的滚动,通过水滴的滚动路径来分割字符,可以解决直线切割造成的过分分割问题. 引言 之前提过对于有粘连的字符可以使用滴水算法来解决分割,但智商捉急的我实在是领悟不了这个算法的精髓,幸好有小伙伴已经实现相关代码. 我对上面的代码进行了一些小修改,同时升级为python3的代码. 还是以这张图片为例: 在以前的我们已经知道这种简单的粘连可以通过控制阈值来实现分割,这里我们使用滴水算法. 首先使用之前文章中介绍

  • python实现图片九宫格分割

    大家都知道在微信朋友圈或者微博以及QQ动态中,有很多"强迫症患者"发图片都爱发9张,而有些图是一张图片分成的九宫图,对于这种操作,大家知道是怎么做到的吗? 本文就是用Python做的一个九宫格图片生成器,是一个打包好的exe文件,用户无需部署安装Python的开发环境,在本地就可以运行此程序,以此快速生成九宫格图片. 下面是程序的所有代码,这是一个Python GUI程序,代码不多,也很容易理解: # -*- coding: UTF-8 -*- # 将一张图片分成九张,九宫格 impo

  • python实现将文件夹内的每张图片批量分割成多张

    一.说在前面 需求:有一张长为960,宽为96的图片,需要将其分割成10张96*96的图片并存放在另外一个文件夹下,通过手工分割耗时且不规范,选择python写一个简单的程序完成. 二.源码 # -*- coding: utf-8 -*- """ Created on Thu Aug 23 18:19:09 2018 @author: Administrator """ import os from PIL import Image # 切割图片

  • python实现图片中文字分割效果

    本文实例为大家分享了python实现图片中文字分割的具体代码,供大家参考,具体内容如下 1.原始图片(包含数字): 结果图: 2.原始图片(包含文字): 结果图: 3.代码如下: import cv2 import numpy as np path = 'test.jpg' root = 'output\\' # 图像resize dsize = 36 img = cv2.imread(path) data = np.array(img) height = data.shape[0] width

  • 如何利用Python识别图片中的文字

    一.前言 不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制.或者像百度文档一样,只能复制一部分,这个时候我们就会选择截图保存.但是当我们想用到里面的文字时,还是要一个字一个字打出来.那么我们能不能直接识别图片中的文字呢?答案是肯定的. 二.Tesseract 文字识别是ORC的一部分内容,ORC的意思是光学字符识别,通俗讲就是文字识别.Tesseract是一个用于文字识别的工具,我们结合Python使用可以很快的实现文字识别.但是在此之前我们需

  • python中opencv实现文字分割的实践

    图片文字分割的时候,常用的方法有两种.一种是投影法,适用于排版工整,字间距行间距比较宽裕的图像:还有一种是用OpenCV的轮廓检测,适用于文字不规则排列的图像. 投影法 对文字图片作横向和纵向投影,即通过统计出每一行像素个数,和每一列像素个数,来分割文字. 分别在水平和垂直方向对预处理(二值化)的图像某一种像素进行统计,对于二值化图像非黑即白,我们通过对其中的白点或者黑点进行统计,根据统计结果就可以判断出每一行的上下边界以及每一列的左右边界,从而实现分割的目的. 算法步骤: 使用水平投影和垂直投

  • python 识别图片中的文字信息方法

    最近朋友需要一个可以识别图片中的文字的程序,以前做过java验证码识别的程序: 刚好最近在做一个python项目,所以顺便用Python练练手 1.需要的环境: 2.7或者3.4版本的python 2.需要安装pytesseract库 依赖PIL和tesseract-ocr库 本地环境是ubuntu,下面说一下 具体步骤: 2.7 1.安装PIL: 直接使用pip 安装: pip install Pillow 2.安装tesseract-ocr: apt-get install tesserac

  • 如何利用Python识别图片中的文字详解

    一.Tesseract 文字识别是ORC的一部分内容,ORC的意思是光学字符识别,通俗讲就是文字识别.Tesseract是一个用于文字识别的工具,我们结合Python使用可以很快的实现文字识别.但是在此之前我们需要完成一个繁琐的工作. (1)Tesseract的安装及配置 Tesseract的安装我们可以移步到该网址 https://digi.bib.uni-mannheim.de/tesseract/,我们可以看到如下界面: 有很多版本供大家选择,大家可以根据自己的需求选择.其中w32表示32

  • python简单实现图片文字分割

    本文实例为大家分享了python简单实现图片文字分割的具体代码,供大家参考,具体内容如下 原图: 图片预处理:图片二值化以及图片降噪处理. # 图片二值化 def binarization(img,threshold): #图片二值化操作 width,height=img.size im_new = img.copy() for i in range(width): for j in range(height): a = img.getpixel((i, j)) aa = 0.30 * a[0]

  • Python实现多张图片合成文字的效果

    目录 前言 一.图片批量下载 1.下载图片 2.检测图片数量 3.查找相似图片 二.图片马赛克 1.使用photomosaic库实现图片马赛克 2.计算颜色相似度实现图片马赛克 前言 前段时间看到有人问如何使用Python实现多张图片组成文字的效果?觉得还挺有意思,于是尝试做了一下,刚好赶上端午节,所以打算从网上下载1000张王心凌的照片,组成端午安康的字样,给大家送上祝福. 一.图片批量下载 首先我们需要从百度下载大量王心凌的图片,但是如果会去百度图片里一张张右键下载,但这样未免太麻烦了,所以

  • 利用Python将图片中扭曲矩形的复原

    前言 日常生活中,手残党们经常会把一些照片拍歪,比如拍个证件.试卷.PPT什么的, 比如下面这本书的封面原本是个矩形,随手一拍就成了不规则四边形 想要把它变成规则的矩形,有什么办法呢? 你一定想到了 PS,因为网上很多教程就是这么教的 打开PS ⟹\Longrightarrow⟹ 滤镜 ⟹\Longrightarrow⟹镜头校正 ⟹\Longrightarrow⟹自定 ⟹\Longrightarrow⟹变换 可是这样手工的调整数值实在是费劲哟!! 下面我们来写个程序,自动将图片恢复到任意矩形!

  • 基于Python实现图像文字识别OCR工具

    目录 引言 功能列表 OCR部分 界面部分 软件代码 参考链接 引言 最近在技术交流群里聊到一个关于图像文字识别的需求,在工作.生活中常常会用到,比如票据.漫画.扫描件.照片的文本提取. 博主基于 PyQt + PaddleOCR 写了一个桌面端的OCR工具,用于快速实现图片中文本区域自动检测+文本自动识别. 识别效果如下图所示: 所有框选区域为OCR算法自动检测,右侧列表有每个框对应的文字内容: 点击右侧"识别结果"中的文本记录,然后点击"复制到剪贴板"即可复制该

  • Python实现PDF文字识别提取并写入CSV文件

    目录 1.前言 2.需求描述 3.开始动手动脑 3.1安装相关第三方包 3.2导入需要用到的第三方库 3.3读取pdf文件,并识别内容 3.4对识别的数据进行处理,写入csv文件 总结 1. 前言 扫描件一直受大众青睐,任何纸质资料在扫描之后进行存档,想使用时手机就能打开,省心省力.但是扫描件的优点也恰恰造成了它的一个缺点,因为是通过电子设备扫描,所以出来的是图像,如果想要处理文件上的内容,直接操作是无法实现的. 那要是想要引用其中的内容怎么办呢?别担心,Python帮你解决问题. 2. 需求描

随机推荐