Python 2.7 使用python查找黑色像素的平均位置
我有一个二值图像,我需要找到黑色区域x和y的平均值。这些值是为一组二值图像计算的,它们的x和y的平均值被绘制出来。我不知道如何找到这个区域并计算它们的x和y的平均值。任何帮助都将不胜感激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 +
如果黑色像素未在某些数据结构中注册,只需计算黑色像素的质心:
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应该在范围(高度)内