Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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检测到的白色区域的位置?_Python_Opencv_Image Processing - Fatal编程技术网

如何知道在python中使用OpenCV检测到的白色区域的位置?

如何知道在python中使用OpenCV检测到的白色区域的位置?,python,opencv,image-processing,Python,Opencv,Image Processing,例如,在这段代码中,我过滤了视频提要以显示白色区域。我如何知道它们的位置/坐标?(x,y) 您可以使用numpy方法获取矩阵中不为零的所有值 indcies = numpy.nonzero(res) 根据Amitay的回答,您还可以使用OpenCV的函数findNonZero。我不知道它的实现方式与numpy的nonzero有什么不同,但是if给出了相同的结果,而且速度更快(这对于大型循环或图像很有用) 看看如果我发现了一个大斑点会怎么样?我怎样才能找到它的中心呢?取x坐标系的平均值和y坐标系

例如,在这段代码中,我过滤了视频提要以显示白色区域。我如何知道它们的位置/坐标?(x,y)


您可以使用numpy方法获取矩阵中不为零的所有值

indcies = numpy.nonzero(res)

根据Amitay的回答,您还可以使用OpenCV的函数
findNonZero
。我不知道它的实现方式与numpy的
nonzero
有什么不同,但是if给出了相同的结果,而且速度更快(这对于大型循环或图像很有用)


看看如果我发现了一个大斑点会怎么样?我怎样才能找到它的中心呢?取x坐标系的平均值和y坐标系的平均值
indcies = numpy.nonzero(res)
import cv2
import numpy as np
import time 

so=cv2.imread(your_image,0)

start1=time.clock()
coord=cv2.findNonZero(so)
end1=time.clock()

start2=time.clock()
coord2=np.nonzero(so)
end2=time.clock()

print("cv2.findNonZeros() takes "+str(end1-start1)+" seconds.")
print("np.nonzero() takes       "+str(end2-start2)+" seconds.")

>>> cv2.findNonZeros() takes 0.003266 seconds.
>>> np.nonzero() takes       0.021132 seconds.