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

发布时间:2020-01-26 21:14

来源:互联网

当前栏目:web技术类

投影法多用于图像的阈值分割。闲话不多说,现用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实现投影法分割图像示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持IIS7站长之家。

python字符分割垂直投影法_Python实现投影法分割图像示例(一)相关推荐

  1. python字符复制函数是啥_Python最全的字符和字符串函数,直接复制到IDLE或另存为py可以运行...

    ## -*- coding: utf-8 -*- import string str1 = "0123456789" print str1[0:3] ##截取第一位到第三位的字符 ...

  2. python字符编码用什么储存卡_python字符编码

    一 了解字符编码的知识储备 一 计算机基础知识 二 文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的 ...

  3. python字符编码正确的是_python字符编码

    字符编码的转换 编码问题一直是个难以理解的问题,莫名其妙转换来转换去的,程序的结果就能正确输出,最后还是留出一点时间开始理解这个棘手的问题. python有两种字符串类型,str.unicode,这两 ...

  4. python四种占位符例子_Python 占位符格式化的简单示例

    对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! 占位符,顾名思义就是插在输出里站位的符号.占位符是绝大部分编程语言都存在的语法, 而且大部分都是相 ...

  5. python绘制条形图用什么函数_Python绘制正余弦函数图像完整代码

    通过python绘制正弦和余弦函数,从默认的设置开始,一步一步地调整改进,让它变得好看,变成我们初高中学习过的图象那样.通过这个过程来学习如何进行对图表的一些元素的进行调整. 01. 简单绘图 mat ...

  6. python 打印xml文档树_Python构建XML树结构的方法示例

    本文实例讲述了Python构建XML树结构的方法.分享给大家供大家参考,具体如下: 1.构建XML元素 #encoding=utf-8 from xml.etree import ElementTre ...

  7. python中os模块详解_Python OS模块(常见文件操作示例)

    1 Python 常见文件操作示例 2. 3. os.path 模块中的路径名访问函数 4. 分隔 5. basename() 去掉目录路径 , 返回文件名 6. dirname() 去掉文件名 , ...

  8. python统计图片的纹理信息_python实现LBP方法提取图像纹理特征实现分类

    题目描述 这篇博文是数字图像处理的大作业. 题目描述:给定40张不同风格的纹理图片,大小为512*512,要求将每张图片分为大小相同的9块,利用其中的5块作为训练集,剩余的4块作为测试集,构建适当的模 ...

  9. python 搭建的http 动态服务器_Python 创建HTTP服务器的简单示例

    这篇文章主要为大家详细介绍了Python 创建HTTP服务器的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ...

最新文章

  1. C#反射读取和设置实体类的属性
  2. 数据中心更新那么快,运维人如何度过35岁危机?
  3. python如何使用sdk_七牛云存储Python SDK使用教程 - 基本介绍
  4. NodeMailer
  5. android 4.4 linux 内核版本,稳定内核版本和更新  |  Android 开源项目  |  Android Open Source Project...
  6. Java-程序的入口
  7. 【动态规划】开心的小明
  8. html-webpack-template, 一个更好的html web service插件
  9. 基于QT框架的离线词典应用程序
  10. 很好奇这个背景图片,盯着看能感受到裸眼3D有没有
  11. Access Violation(非法访问)错误的解决方法
  12. 倍福PLC Modbus通信区
  13. 图解angr中两种CFG的区别
  14. 关于Discuz论坛整合问题
  15. 33个与众不同的Web表单设计
  16. 解读采用DSP工业电机控制系统电路_电动机控制电路图讲解
  17. 第一部分 Rx快速入门
  18. c语言作文的题目_c语言练习题目
  19. JavaScript中常用事件有哪些?
  20. ORACLE 闩锁介绍

热门文章

  1. 解决Cadence 17.4软件无法启动,capture cis启动缓慢,打开项目缓慢,allegro 打开程序未响应(即使微软拼音切换兼容模式也无法解决的情况)
  2. 论文小技巧-pdf转eps使色彩保持RGB不变及去边框
  3. 5. Django templates模板 (一)
  4. 解决vue项目出现Navigating to current location (XXX) is not allowed 报错
  5. 奥维查看行政边界_全国乡镇行政区划数据乡镇边界数据查询获取方式
  6. gamemaker 2 如何做一个过场动画的思路
  7. 记云服务器中挖矿病毒与防范
  8. Cassini Data Rev manufacturer eals Likely Subsurface Ocean on Titan
  9. win7如何去除计算机左边的,win7系统删除资源管理器左侧的家庭组图标方法图解...
  10. 最详细的 Hadoop 入门教程