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 相关文章推荐
python实现的守护进程(Daemon)用法实例
Jun 02 Python
剖析Django中模版标签的解析与参数传递
Jul 21 Python
python3操作mysql数据库的方法
Jun 23 Python
详解TensorFlow在windows上安装与简单示例
Mar 05 Python
mac PyCharm添加Python解释器及添加package路径的方法
Oct 29 Python
对pandas的算术运算和数据对齐实例详解
Dec 22 Python
python的命名规则知识点总结
Oct 04 Python
numpy:找到指定元素的索引示例
Nov 26 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
Feb 09 Python
pycharm安装及如何导入numpy
Apr 03 Python
Python基于callable函数检测对象是否可被调用
Oct 16 Python
python 根据列表批量下载网易云音乐的免费音乐
Dec 03 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
一个PHP日历程序
2006/12/06 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
php实现留言板功能
2017/03/05 PHP
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
基于jQuery替换table中的内容并显示进度条的代码
2011/08/02 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
Jquery 效果使用详解
2015/11/23 Javascript
jQuery CSS3自定义美化Checkbox实现代码
2016/05/12 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
node.js实现带进度条的多文件上传
2020/03/27 Javascript
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
Python使用py2exe打包程序介绍
2014/11/20 Python
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
Python2.x中文乱码问题解决方法
2015/06/02 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
Python操作mongodb数据库的方法详解
2018/12/08 Python
python版DDOS攻击脚本
2019/06/12 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
判断Threading.start新线程是否执行完毕的实例
2020/05/02 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
为智能设备设计个性化保护套网站:caseable
2017/01/05 全球购物
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
工作中的自我评价如何写好
2013/10/28 职场文书
外贸学院会计专业应届生求职信
2013/11/14 职场文书
应届毕业生求职信
2013/11/30 职场文书
九月份红领巾广播稿
2014/01/22 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
公司开业庆典主持词
2014/03/21 职场文书
代理协议书范本
2014/04/22 职场文书
幼儿园大班教师评语
2019/06/21 职场文书
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript