Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python opencv,查找图像的质心_Opencv - Fatal编程技术网

python opencv,查找图像的质心

python opencv,查找图像的质心,opencv,Opencv,我在学习模式识别。出于研究目的,我从一堆图像中提取人脸,并从中提取有意义的特征。所以我试着找到每个人脸图像的质心。然而,对于一些图像,我得到了坐标为(0,0)的质心。我用于查找质心的代码部分如下: ################# find the centroid of each faces ################# ret, threshold = cv2.threshold(image, 255/2, 255, cv2.THRESH_BINARY) cont, hier = c

我在学习模式识别。出于研究目的,我从一堆图像中提取人脸,并从中提取有意义的特征。所以我试着找到每个人脸图像的质心。然而,对于一些图像,我得到了坐标为(0,0)的质心。我用于查找质心的代码部分如下:

################# find the centroid of each faces #################
ret, threshold = cv2.threshold(image, 255/2, 255, cv2.THRESH_BINARY)
cont, hier = cv2.findContours(threshold, 1, 2)
moment = cv2.moments(cont[0])
if moment['m00'] == 0:
    m00 = 0.01
else:
    m00 = moment['m00']
cx, cy = int(moment['m10']/m00), int(moment['m01']/m00)
###################################################################
我将m00赋值为0.01,因为某些值力矩['m00']为零。 我的问题是我找到图像的质心是否正确??如果是,为什么有些质心是(0,0)??我认为,因为每个图像不仅仅是空白图像,质心坐标应该是非零坐标。
谢谢

如果
m00==0
m01==m10==0
,因此
cx==cy==0
。你有没有试过用
绘制轮廓来看看它们是什么样子?@bicker哦,为什么??为什么如果m00==0,那么m01==0??我认为它们是不同的价值观。我真的不明白这个力矩函数是怎么工作的。我刚读了教程。我将尝试drawContours功能。@我认为烧杯drawContours不工作。你知道质心为(0,0)的情况吗?请看:我会检查你要画的轮廓中有多少点。