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利用matplotlib生成图片背景及图例透明的效果
Apr 27 Python
PyCharm代码格式调整方法
May 23 Python
python实现简单登陆系统
Oct 18 Python
Python基于scipy实现信号滤波功能
May 08 Python
python 函数中的内置函数及用法详解
Jul 02 Python
关于sys.stdout和print的区别详解
Dec 05 Python
使用TensorFlow-Slim进行图像分类的实现
Dec 31 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
Feb 11 Python
Python接口测试环境搭建过程详解
Jun 29 Python
Python常用扩展插件使用教程解析
Nov 02 Python
Python制作运行进度条的实现效果(代码运行不无聊)
Feb 24 Python
python中if和elif的区别介绍
Nov 07 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 FPDF类库应用实现代码
2009/03/20 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
深入解析PHP中逗号与点号的区别
2013/08/05 PHP
php实现的递归提成方案实例
2015/11/14 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
JS中setTimeout的巧妙用法前端函数节流
2016/03/24 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
Python实现的爬虫功能代码
2017/06/24 Python
基于python 二维数组及画图的实例详解
2018/04/03 Python
python创建文件备份的脚本
2018/09/11 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
Python3连接Mysql8.0遇到的问题及处理步骤
2020/02/17 Python
python求解汉诺塔游戏
2020/07/09 Python
Pycharm调试程序技巧小结
2020/08/08 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
学生干部学习的自我评价
2014/02/18 职场文书
五一劳动节活动记录
2014/03/23 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
会议接待欢迎标语
2014/10/08 职场文书
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server