Python实现投影法分割图像示例(一)


Posted in Python onJanuary 17, 2020

投影法多用于图像的阈值分割。闲话不多说,现用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 + 1
  else :
   continue
 v[x] = a
 a = 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 + 1
  else :
   continue
 z[y] = a
 a = 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实现投影法分割图像示例(一)

垂直投影图

Python实现投影法分割图像示例(一)

水平投影图

Python实现投影法分割图像示例(一)

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

以上这篇Python实现投影法分割图像示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详细解读tornado协程(coroutine)原理
Jan 15 Python
tensorflow 加载部分变量的实例讲解
Jul 27 Python
Django中数据库的数据关系:一对一,一对多,多对多
Oct 21 Python
超简单使用Python换脸实例
Mar 27 Python
python sorted函数的小练习及解答
Sep 18 Python
python实现的多任务版udp聊天器功能案例
Nov 13 Python
Python实现图片识别加翻译功能
Dec 26 Python
python读取ini配置的类封装代码实例
Jan 08 Python
python程序文件扩展名知识点详解
Feb 27 Python
Python编程快速上手——Excel表格创建乘法表案例分析
Feb 28 Python
python中_del_还原数据的方法
Dec 09 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 05 Python
np.dot()函数的用法详解
Jan 17 #Python
python使用numpy实现直方图反向投影示例
Jan 17 #Python
对python中 math模块下 atan 和 atan2的区别详解
Jan 17 #Python
python 计算方位角实例(根据两点的坐标计算)
Jan 17 #Python
Python autoescape标签用法解析
Jan 17 #Python
flask利用flask-wtf验证上传的文件的方法
Jan 17 #Python
Python with标签使用方法解析
Jan 17 #Python
You might like
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
php处理restful请求的路由类分享
2014/02/27 PHP
php程序内部post数据的方法
2015/03/31 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
优化javascript的执行速度
2010/01/23 Javascript
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
jquery实现邮箱自动补全功能示例分享
2014/02/17 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
jquery zTree异步加载简单实例讲解
2016/02/25 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
pandas表连接 索引上的合并方法
2018/06/08 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
python序列类型种类详解
2020/02/26 Python
详解python内置模块urllib
2020/09/09 Python
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
我为自己代言广告词
2014/03/18 职场文书
竞聘书怎么写,如何写?
2014/03/31 职场文书
教师产假请假条
2014/04/10 职场文书
社区义诊活动总结
2014/04/30 职场文书
美术学专业求职信
2014/07/23 职场文书
房地产端午节活动方案
2014/08/24 职场文书
护士节演讲稿开场白
2014/08/25 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
企业法人代表授权委托书
2014/10/02 职场文书
初中班主任工作随笔
2015/08/15 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
Java实现字符串转为驼峰格式的方法详解
2022/07/07 Java/Android