Python实现图像的垂直投影示例


Posted in Python onJanuary 17, 2020

Python + OpenCV 直接上代码

import cv2 
import numpy as np 
from matplotlib import pyplot as plt 
from PIL import Image
 
img=cv2.imread('0002.jpg') #读取图片,装换为可运算的数组
GrayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  #将BGR图转为灰度图
ret,thresh1=cv2.threshold(GrayImage,130,255,cv2.THRESH_BINARY) #将图片进行二值化(130,255)之间的点均变为255(背景)
# print(thresh1[0,0])#250 输出[0,0]这个点的像素值 				#返回值ret为阈值
# print(ret)#130
(h,w)=thresh1.shape #返回高和宽
# print(h,w)#s输出高和宽
a = [0 for z in range(0, w)] 
print(a) #a = [0,0,0,0,0,0,0,0,0,0,...,0,0]初始化一个长度为w的数组,用于记录每一列的黑点个数 
 
#记录每一列的波峰
for j in range(0,w): #遍历一列 
  for i in range(0,h): #遍历一行
    if thresh1[i,j]==0: #如果改点为黑点
      a[j]+=1 		#该列的计数器加一计数
      thresh1[i,j]=255 #记录完后将其变为白色 
  # print (j)      
 
#      
for j in range(0,w): #遍历每一列
  for i in range((h-a[j]),h): #从该列应该变黑的最顶部的点开始向最底部涂黑
    thresh1[i,j]=0  #涂黑
 
#此时的thresh1便是一张图像向垂直方向上投影的直方图
#如果要分割字符的话,其实并不需要把这张图给画出来,只需要的到a=[]即可得到想要的信息
 
 
# img2 =Image.open('0002.jpg')
# img2.convert('L')
# img_1 = np.array(img2)
plt.imshow(thresh1,cmap=plt.gray())
plt.show()
cv2.imshow('img',thresh1) 
cv2.waitKey(0) 
cv2.destroyAllWindows()

原图:

Python实现图像的垂直投影示例

运行结果:

Python实现图像的垂直投影示例

在水平方向上进行投影,代码如下所示(原理同上):

import cv2 
import numpy as np 
from matplotlib import pyplot as plt 
from PIL import Image
 
img=cv2.imread('C:/Users/Jet Zhang/Desktop/50/50/cut.png') 
GrayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
ret,thresh1=cv2.threshold(GrayImage,130,255,cv2.THRESH_BINARY)
 
(h,w)=thresh1.shape #返回高和宽
 
a = [0 for z in range(0, h)] 
print(a) 
 
for j in range(0,h): 
  for i in range(0,w): 
    if thresh1[j,i]==0: 
      a[j]+=1 
      thresh1[j,i]=255
     
for j in range(0,h): 
  for i in range(0,a[j]):  
    thresh1[j,i]=0  
 
plt.imshow(thresh1,cmap=plt.gray())
plt.show()

效果图如下所示:

Python实现图像的垂直投影示例

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

Python 相关文章推荐
Python装饰器的函数式编程详解
Feb 27 Python
Python生成随机密码
Mar 10 Python
使用Python中的greenlet包实现并发编程的入门教程
Apr 16 Python
对于Python装饰器使用的一些建议
Jun 03 Python
Python实现读取文件最后n行的方法
Feb 23 Python
python实现数据分析与建模
Jul 11 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
Sep 06 Python
通过实例解析Python调用json模块
Dec 11 Python
Pycharm调试程序技巧小结
Aug 08 Python
Python爬虫基础初探selenium
May 31 Python
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
Jun 13 Python
基于python实现语音录入识别代码实例
Jan 17 #Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
Jan 17 #Python
python实现高斯投影正反算方式
Jan 17 #Python
python中图像通道分离与合并实例
Jan 17 #Python
Python-opencv 双线性插值实例
Jan 17 #Python
如何通过python实现人脸识别验证
Jan 17 #Python
Python-openCV读RGB通道图实例
Jan 17 #Python
You might like
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
nodeJS代码实现计算交社保是否合适
2015/03/09 NodeJs
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
2016/08/05 Javascript
vue2.0全局组件之pdf详解
2017/06/26 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
详细解析Python中__init__()方法的高级应用
2015/05/11 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
python适合人工智能的理由和优势
2019/06/28 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
Python高级property属性用法实例分析
2019/11/19 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
英国马匹装备和马术用品购物网站:Equine Superstore
2019/03/03 全球购物
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
什么是数组名
2012/05/10 面试题
什么是事务?事务有哪些性质?
2012/03/11 面试题
自荐信的两点禁忌
2013/10/30 职场文书
项目施工员岗位职责
2014/03/09 职场文书
支部书记四风问题自我剖析材料
2014/09/29 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
2014保险公司个人工作总结
2014/12/09 职场文书
地心历险记观后感
2015/06/15 职场文书
财务年终工作总结大全
2019/06/20 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python
MySQL数据库必备之条件查询语句
2021/10/15 MySQL
css3带你实现3D转换效果
2022/02/24 HTML / CSS