python-opencv 像素点转成坐标点:Y轴的投影

    技术2022-07-11  88

    菜鸟研究僧来分享最近的工作:python-opencv 像素点转成坐标点   

        该项目是测量某板的边界并取得边界的平均值计算其偏移量。

    首先进行边界检测得到二值图,再对二值图进行y轴的投影。

    def getImageHorizontalAndVerticalSum(ImageThre): rows, cols = ImageThre.shape versum = [] for i in range(rows): val = np.array(ImageThre[i, :]).sum() versum.append(val) # print(val) return versum #边界的竖直分布情况 def getVerticalCharPosition(versum): result=[] #用来保存找到的结果:位置,区间大小 i=0 while i<len(versum): if(versum[i]!=0): j=1 #代表这个区间的大小 sum=versum[i] #代表这整个区间的像素和是多少 while(versum[i+j]!=0): sum=sum+versum[i+j] j=j+1 if j > 10 and sum > 50000: result.append([i, j]) i=i+j+1 #跳过这整个不为0的区间,开始寻找下一个区间 i=i+1 return result #输出函数曲线图,这里输出了水平方向上的像素情况,可以很明显的知道数字的分布 ImageThre=v2 versum=getImageHorizontalAndVerticalSum(ImageThre) rows, cols =ImageThre.shape X=np.arange(0,rows,1) #plt.plot(X,versum) #plt.show() #print(versum) #print(versum*X) z=sum(versum*X)#所有散点的y轴坐标的总和 N=sum(versum)#散点数量 #边缘的平均值 pingjun=z/N #print(pingjun) #实际坐标位置 Y=pingjun #print(Y)

     

    Processed: 0.052, SQL: 9