Python 2.7 使用python查找黑色像素的平均位置

Python 2.7 使用python查找黑色像素的平均位置,python-2.7,opencv,image-processing,video-processing,Python 2.7,Opencv,Image Processing,Video Processing,我有一个二值图像,我需要找到黑色区域x和y的平均值。这些值是为一组二值图像计算的,它们的x和y的平均值被绘制出来。我不知道如何找到这个区域并计算它们的x和y的平均值。任何帮助都将不胜感激 如果黑色像素未在某些数据结构中注册,只需计算黑色像素的质心: sx = 0 sy = 0 black_cnt = 0 for y in y-range for x in x-range if black(x,y) sx = sx + x sy = sy +

我有一个二值图像,我需要找到黑色区域x和y的平均值。这些值是为一组二值图像计算的,它们的x和y的平均值被绘制出来。我不知道如何找到这个区域并计算它们的x和y的平均值。任何帮助都将不胜感激


如果黑色像素未在某些数据结构中注册,只需计算黑色像素的质心:

sx = 0
sy = 0
black_cnt = 0
for y in y-range
  for x in x-range
     if black(x,y)
          sx = sx + x
          sy = sy + y
          black_cnt++

sx = sx / black_cnt
sy = sy / black_cnt

如果黑色像素未在某些数据结构中注册,只需计算黑色像素的质心:

sx = 0
sy = 0
black_cnt = 0
for y in y-range
  for x in x-range
     if black(x,y)
          sx = sx + x
          sy = sy + y
          black_cnt++

sx = sx / black_cnt
sy = sy / black_cnt

您可以使用轮廓的矩获得平均位置

为了找到平均值,必须计算轮廓的一阶矩

代码:


cX
cY
具有等高线的平均位置。

您可以使用等高线的矩获得平均位置

为了找到平均值,必须计算轮廓的一阶矩

代码:


cX
cY
具有等高线的平均位置。

使用
cv2。矩
使用
cv2。矩
我厌倦了这种方法,我得到了
等高线,层次结构=cv2。找到了等高线(thresh,cv2.RETR\u TREE,cv2.CHAIN\u APPROX\u SIMPLE)ValueError:太多的值无法解包
此error@the_guy这是一个版本问题尝试:
,轮廓,层次=cv2.findContours(thresh,cv2.RETR\u TREE,cv2.CHAIN\u About\u SIMPLE)
我厌倦了这个方法,我得到了
轮廓,层次=cv2.findContours(thresh,cv2.RETR\u TREE,cv2.CHAIN\u About\u SIMPLE)ValueError:太多的值无法解包
此error@the_guy这是一个版本问题,请尝试:
,轮廓,层次=cv2.findContours(thresh,cv2.RETR\u TREE,cv2.CHAIN\u About\u SIMPLE)
我得到了
索引器:索引255超出了轴0的范围,大小为200
此错误您所说的错误循环是什么意思,
im=cv2.imread('v6.tif',0)ret,thresh=cv2.threshold(im,120255,1)a=len(im)打印thresh b=a+2sx=0 sy=0 black c=0表示范围内的x(a):表示范围内的y:pixel=im[x,y]如果像素==0:sx=sx+x sy=sy+y black c+=1 print black c cv2.waitKey()
我这样做是为了在范围(a)内的x使用
而x应该在范围(宽度)内,y应该在范围(高度)内我得到了索引器:索引255超出了大小为200的轴0的界限这个错误你说的错误循环是什么意思,
im=cv2.imread('v6.tif',0)ret,thresh=cv2.threshold(im,120255,1)a=len(im)打印thresh b=a+2sx=0sy=0blackc=0对于范围内的x(a):对于范围内的y(a):像素=im[x,y]如果像素==0:sx=sx+x sy=sy+y black c+=1 print black c cv2.waitKey()
我这样做是为了在范围(a)内的x使用
而x应该在范围(宽度)内,y应该在范围(高度)内