标签:投影 grayimg range 图像 视觉 thres cv 255
什么是图像投影
要实现图像投影操作,我们首先要弄清楚什么是投影。图像投影分为水平投影和垂直投影:水平面方向的正投影叫水平投影,水平投影是指二维图像按行向y轴方向投影;垂直投影是指二位图像按列向x轴方向投影,投影的结果可以看成事一维图像。
对于一个二维图像来说,投影是将图像二值化后的像素点按某一方向堆叠,了解了这个原理后,就可以写出图片投影的代码:
水平投影:
import cv2 import numpy as np img=cv2.imread('123.jpg') cv2.imshow('origin',img) cv2.waitKey(0) grayimg=cv.cvtColor(img,cv.COLOR_BGR2GRAY) img1,thres=cv.threshold(grayimg,130,255,cv.THRESH_BINARY) img1,thres1=cv.threshold(grayimg,130,255,cv.THRESH_BINARY) (h,w)=thres.shape a=[0 for i in range(0,w)] for j in range(0,w): for i in range(0,h): if thres[i,j]==0: a[j]+=1 thres[i,j]=255 for j in range(0,w): for i in range((h-a[j]),h): thres[i,j]=0 cv.imshow('chuizhi',thres) cv.waitKey(0)
垂直投影
import cv2 import numpy as np img=cv2.imread('123.jpg') cv2.imshow('origin',img) cv2.waitKey(0) grayimg=cv.cvtColor(img,cv.COLOR_BGR2GRAY) img1,thres=cv.threshold(grayimg,130,255,cv.THRESH_BINARY) img1,thres1=cv.threshold(grayimg,130,255,cv.THRESH_BINARY) (h,w)=thres.shape a=[0 for i in range(0,w)] for j in range(0,w): for i in range(0,h): if thres[i,j]==0: a[j]+=1 thres[i,j]=255 for j in range(0,w): for i in range((h-a[j]),h): thres[i,j]=0 cv.imshow('chuizhi',thres) cv.waitKey(0)
其中
grayimg=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
img1,thres=cv.threshold(grayimg,130,255,cv.THRESH_BINARY)
img1,thres1=cv.threshold(grayimg,130,255,cv.THRESH_BINARY)
这三行代码是由于后续操作中我们需要用到图像的长宽像素数据,但通过shape函数得到的数据除了长宽数据外还有图像的深度数据,这一项数据是我们不需要的,所以需要通过上述三行代码除去图像的深度数据。
这次的实验到这里就结束了,希望看了这个实验的你可以自己动手实践一下。
标签:投影,grayimg,range,图像,视觉,thres,cv,255 来源: https://www.cnblogs.com/zhangmingfeng/p/12546871.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。