投影法多用于图像的阈值分割。闲话不多说,现用Python实现。上代码。

import cv2
import numpy
img = cv2.imread('D:/0.jpg', cv2.COLOR_BGR2GRAY)
height, width = img.shape[:2]
#resized = cv2.resize(img, (3*width,3*height), interpolation=cv2.INTER_CUBIC)
#二值化
(_, thresh) = cv2.threshold(img, 150, 255, cv2.THRESH_BINARY)
#cv2.imshow('thresh', thresh)
#扩大黑色面积,使效果更明显
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (10, 10))#形态学处理,定义矩形结构
closed = cv2.erode(thresh, None, iterations = 5)
cv2.imshow('erode',closed)
height, width = closed.shape[:2]
v = [0]*width
z = [0]*height
a = 0
#垂直投影
#统计并存储每一列的黑点数
for x in range(0, width):               for y in range(0, height):if closed[y,x][0] == 0:a = a + 1else :continuev[x] = aa = 0
l = len(v)
#print l
#print width
#创建空白图片,绘制垂直投影图
emptyImage = numpy.zeros((height, width, 3), numpy.uint8)
for x in range(0,width):for y in range(0, v[x]):b = (255,255,255)emptyImage[y,x] = b
cv2.imshow('chuizhi', emptyImage)
#水平投影
#统计每一行的黑点数
a = 0
emptyImage1 = numpy.zeros((height, width, 3), numpy.uint8)
for y in range(0, height):for x in range(0, width):if closed[y,x][0] == 0:a = a + 1else :continuez[y] = aa = 0
l = len(z)
#print l
#print height
#绘制水平投影图
for y in range(0,height):for x in range(0, z[y]):b = (255,255,255)emptyImage1[y,x] = b
cv2.imshow('shuipin', emptyImage1)
cv2.waitKey(0)

原图

垂直投影图

水平投影图

由这两图可以确定我们所需的分割点,从而可以进行下一步的文本分割。这将在下一篇博客中实现。

Python实现投影法分割图像(一)相关推荐

  1. Python实现投影法分割图像(二)

    在上篇博客中,我们已经实现了水平投影和垂直投影图的绘制.接下来,我们可以根据获得的投影数据进行图像的分割,该法用于文本分割较多,所以此处依然以上次的图为例. 先把上次的两幅图搬过来,方便讲解. 上面两 ...

  2. python实现图像分割_Python实现投影法分割图像示例(一)

    投影法多用于图像的阈值分割.闲话不多说,现用Python实现. 上代码. import cv2 import numpy img = cv2.imread('D:/0.jpg', cv2.COLOR_ ...

  3. python字符分割垂直投影法_Python实现投影法分割图像示例(一)

    Python实现投影法分割图像示例(一) 发布时间:2020-01-26 21:14 来源:互联网 当前栏目:web技术类 投影法多用于图像的阈值分割.闲话不多说,现用Python实现. 上代码. i ...

  4. 垂直投影法分割验证码

    垂直投影法分割验证码 背景: 在在上一篇的文章中,我们获得了能够破解验证码的完整的步骤的程序,虽然很简单,但是整体的框架已经设计完毕,接下来只要对其中的算法进行改进即可. 老规矩,先附上缺的上一次的链 ...

  5. Halcon对彩色图像进行背景差法分割图像

    Halcon对彩色图像进行背景差法分割图像   *读取背景图像 read_image (BGImage, 'Background.jpg') *依次读取图像 for Index := 1 to 1 b ...

  6. 【OpenCV 4开发详解】分割图像——分水岭法

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  7. opencv4 c++ 提取图片中的白色区域_修正!【从零学习OpenCV 4】分割图像——分水岭法...

    点击上方"小白学视觉",选择"星标"公众号重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<OpenCV 4开 ...

  8. 【OpenCV 4开发详解】分割图像——Mean-Shift分割算法

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  9. 文本分割之水平投影法基于OpenCV(python)版实现

    对于如下一张图片,如何将文本区域分割成一行一行的了? 在文本分割领域中有一种很优秀的算法:投影法,包括水平投影法和垂直投影法.本文主要讲述水平投影法,水平投影法可以理解为一束光线从图像的左侧向右边进行 ...

最新文章

  1. Intent中的四个重要属性——Action、Data、Category、Extras
  2. Excel 技巧篇-公式实现在指定范围内生成指定小数位的随机数
  3. System Center 2012 R2实例2—构建Azure Pack云10—租户RM
  4. Android ListView滑动后背景变黑
  5. Linux移植随笔:终于解决Tslib的问题了【转】
  6. -XX:+UseParallelGC与 -XX:+UseParNewGC相关介绍
  7. java 前言中不允许有内容_解析xml字符串时报“前言中不允许有内容”错误。
  8. JAVA入门级教学之(内存引用的例子)
  9. java seekbar_SeekBar的基本使用方法
  10. 用php打出2020年是庚子鼠年,2020年庚子鼠年,做到三善,命运必变!
  11. 站立会议03--个人总结
  12. liunx Swap 分区的作用
  13. EXCEL闪退的处理方法
  14. (一)MATLAB中的输入与输出
  15. i3wm学习笔记-基础快捷键
  16. 字体转换,woff,ttf,otf,eot,svg
  17. Redisson lua脚本解读
  18. Abaqus6.14.4 Linux详细图文安装教程
  19. SEO优化:如何挖掘谷歌关键词-实例讲解(2022最新)
  20. 微信5.0打飞机怎么取得高分?

热门文章

  1. 崩坏3服务器维护多久,崩坏34月25日停机维护到几点_4月25日崩坏3停机维护时间_玩游戏网...
  2. 【C语言|数组】数组a、a、a[0]、a[0][0]的区别与联系
  3. 微信小程序云开发,数据库“增”、“删”、“改”、“查”操作
  4. vuerouter4报错:Discarded invalid param(s) “name“, “age“ when navigating.
  5. windows获取iOS设备信息
  6. 实验二 实现中点分割直线段裁剪算法
  7. android 修改应用权限设置在哪里,Android在应用设置里关闭权限,返回生命周期处理...
  8. 相亲APP开发功能及解决方案
  9. HTML+CSS+JavaScript+Ajax+ECharts实现疫情实时监控大屏-2设计与实现
  10. 周鸿祎《智能主义》读书笔记