Python + openCV 实现图像垂直投影和水平投影
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python + openCV 实现图像垂直投影和水平投影,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2011字,纯文字阅读大概需要3分钟。
内容图文
![Python + openCV 实现图像垂直投影和水平投影](/upload/InfoBanner/zyjiaocheng/638/75631a23ba0c4c9bba70d5cc966c3f55.jpg)
Python + openCV 实现图像垂直投影和水平投影
1. 先将需要投影的图片转为灰度图,我写了两个函数,分别实现对图像进行垂直投影和水平投影;
if __name__ == '__main__': img = cv2.imread('C:\\Users\\24493\\Desktop\\123.jpg') cv2.imshow("image",img) GrayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #将img图像转换为灰度图,输出为GrayImage getVProjection(GrayImage) #调用getVProjection函数进行垂直投影 getHProjection(GrayImage) #调用getHProjection函数进行水平投影 cv2.waitKey(0) cv2.destroyAllWindows()
2. 进行垂直投影,将传入的灰度图转为黑白二值图,统计出每列的黑色点,然后再将统计结果全部集中在底部显示
def getVProjection(image): # 将image图像转为黑白二值图,ret接收当前的阈值,thresh1接收输出的二值图 ret, thresh1 = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY) (h,w)=thresh1.shape #返回高和宽 a = [0 for z in range(0, w)] #a = [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 #记录完后将其变为白色 for j in range(0,w): #遍历每一列 for i in range((h-a[j]),h): #从该列应该变黑的最顶部的点开始向最底部涂黑 thresh1[i,j]=0 #涂黑 cv2.imshow('Vimage',thresh1)
3. 进行水平投影,将传入的灰度图转为黑白二值图,统计出每行的黑色点,然后再将统计结果全部集中在左边显示;
def getHProjection(image): # 将image图像转为黑白二值图,ret接收当前的阈值,thresh1接收输出的二值图 ret, thresh1 = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY) (h,w)=thresh1.shape #返回高和宽 a = [0 for z in range(0, h)] #a = [0,0,0,...,0,0]初始化一个长度为h的数组,用于记录每一行的黑点个数 #记录每一行的波峰 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(a[j]): #从该行顶部的点开始向右涂黑统计的黑点数 thresh1[j,i]=0 #涂黑 cv2.imshow('Himage',thresh1)
以下图为例:
原图:
垂直投影为:
水平投影为:
内容总结
以上是互联网集市为您收集整理的Python + openCV 实现图像垂直投影和水平投影全部内容,希望文章能够帮你解决Python + openCV 实现图像垂直投影和水平投影所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。