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中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
Apr 27 Python
基于python 爬虫爬到含空格的url的处理方法
May 11 Python
解决PySide+Python子线程更新UI线程的问题
Jan 11 Python
python之当你发现QTimer不能用时的解决方法
Jun 21 Python
Python图像处理之图片文字识别功能(OCR)
Jul 30 Python
详解使用Python下载文件的几种方法
Oct 13 Python
python计算无向图节点度的实例代码
Nov 22 Python
pytorch 模拟关系拟合——回归实例
Jan 14 Python
python模拟哔哩哔哩滑块登入验证的实现
Apr 24 Python
python def 定义函数,调用函数方式
Jun 02 Python
Python使用scapy模块发包收包
May 07 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
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
php模拟js函数unescape的函数代码
2012/10/20 PHP
phpphp图片采集后按原路径保存图片示例
2014/02/18 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
2016/09/22 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
基于JQuery的多标签实现代码
2012/09/19 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
分享十三个最佳JavaScript数据网格库
2017/04/07 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
npm 下载指定版本的组件方法
2018/05/17 Javascript
浅谈PDF.js使用心得
2018/06/07 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
Linux中Python 环境软件包安装步骤
2016/03/31 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
对Pytorch中Tensor的各种池化操作解析
2020/01/03 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
Html5定位终极解决方案
2020/02/05 HTML / CSS
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
校园门卫岗位职责
2013/12/09 职场文书
上课睡觉检讨书
2014/01/28 职场文书
说明书格式及范文
2014/05/07 职场文书
征兵宣传标语
2014/06/20 职场文书
会计系毕业求职信
2014/08/07 职场文书
婚前财产协议书范本
2014/10/19 职场文书