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 yield 小结和实例
Apr 25 Python
Python写的PHPMyAdmin暴力破解工具代码
Aug 06 Python
python subprocess 杀掉全部派生的子进程方法
Jan 16 Python
python中dir()与__dict__属性的区别浅析
Dec 10 Python
python使用MQTT给硬件传输图片的实现方法
May 05 Python
django之对FileField字段的upload_to的设定方法
Jul 28 Python
Python enumerate内置库用法解析
Feb 24 Python
python实现udp传输图片功能
Mar 20 Python
解决python调用自己文件函数/执行函数找不到包问题
Jun 01 Python
Python安装Bs4的多种方法
Nov 28 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 Python
Python机器学习实战之k-近邻算法的实现
Nov 27 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
php数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
php输出xml属性的方法
2015/03/19 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
2016/07/25 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
JS定时器实例详细分析
2013/10/11 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
js实现蒙版效果
2020/01/11 Javascript
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python读取浮点数和读取文本文件示例
2014/05/06 Python
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
全球最大的游戏市场:G2A
2018/07/05 全球购物
工商管理实习自我鉴定
2013/09/28 职场文书
竞选班干部演讲稿100字
2014/08/20 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
入党介绍人考察意见
2015/06/01 职场文书
工作表现证明
2015/06/15 职场文书