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基础教程之面向对象的一些概念
Aug 29 Python
Python使用Flask框架同时上传多个文件的方法
Mar 21 Python
Python中property函数用法实例分析
Jun 04 Python
python 不以科学计数法输出的方法
Jul 16 Python
解决python3中cv2读取中文路径的问题
Dec 05 Python
Win10下python 2.7与python 3.7双环境安装教程图解
Oct 12 Python
python实现输出一个序列的所有子序列示例
Nov 18 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
May 22 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
Aug 19 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 Python
Pandas数据类型之category的用法
Jun 28 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 syntax error, unexpected $end 错误的一种原因及解决
2008/10/25 PHP
PHP生成自适应大小的缩略图类及使用方法分享
2014/05/06 PHP
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
学习jQuey中的return false
2015/12/18 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
基于JavaScript实现带数据验证和复选框的表单提交
2017/08/23 Javascript
JS中promise化微信小程序api
2018/04/12 Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
2018/05/14 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
浅谈javascript如何获取文件后缀名
2020/08/07 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
对python中return和print的一些理解
2017/08/18 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
2018/02/26 Python
Python XlsxWriter模块Chart类用法实例分析
2019/03/11 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
C语言50道问题
2014/10/23 面试题
个园导游词
2015/02/04 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书
2016年少先队活动总结
2016/04/06 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python