Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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/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
轮廓内的OpenCV python搜索_Python_Opencv - Fatal编程技术网

轮廓内的OpenCV python搜索

轮廓内的OpenCV python搜索,python,opencv,Python,Opencv,我正在将Python3与OpenCV一起用于一个项目。我用相机从空中拍摄图像。有3个不同颜色的方块相互接触,背景模糊。我能够消除整个背景,得到一个包含3个正方形的单一轮廓 如何在该轮廓内搜索以确定哪个颜色方块 def filter_size(self, pixel_size): _, cnt, _ = cv2.findContours(self.processed_image, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) for c in

我正在将Python3与OpenCV一起用于一个项目。我用相机从空中拍摄图像。有3个不同颜色的方块相互接触,背景模糊。我能够消除整个背景,得到一个包含3个正方形的单一轮廓

如何在该轮廓内搜索以确定哪个颜色方块

  def filter_size(self, pixel_size):
    _, cnt, _ = cv2.findContours(self.processed_image, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    for c in cnt:
        if cv2.contourArea(c) > pixel_size:
            self.countours.append(c)  #  contains my found contours

我希望能够使用轮廓内的HSV过滤器,根据颜色标记每个正方形

谢谢, 凯尔

  • 因为你已经找到了轮廓区域,你可以在轮廓内迭代,找到新的轮廓,最终得到3个轮廓
  • 之后,您可以从轮廓中心获取样本,如下所示

    对于等高线中的c:
    x、 y,w,h=cv2.boundingRect(c)

  • 因为x和y将是轮廓c的中心点;最后,您所要做的就是将HSV遮罩应用于中心点

  • 因为你已经找到了轮廓区域,你可以在轮廓内迭代,找到新的轮廓,最终得到3个轮廓
  • 之后,您可以从轮廓中心获取样本,如下所示

    对于等高线中的c:
    x、 y,w,h=cv2.boundingRect(c)

  • 因为x和y将是轮廓c的中心点;最后,您所要做的就是将HSV遮罩应用于中心点


  • 您可以提及基本颜色的颜色范围,并尝试搜索该颜色是否存在not@JeruLuke是的,但是我如何指定边界在我的轮廓内?使用在线色码转换器@JeruLuke,我认为你没有领会我的意思。我不想搜索整个图像,只是在小轮廓内。我知道如何过滤颜色,只是不知道如何指定位置边界。既然你已经找到了想要的轮廓区域,你可以屏蔽掉不想要的区域。你可以提到基本颜色的颜色范围,并尝试搜索该颜色是否存在not@JeruLuke对但是,我如何指定仅在轮廓内的边界呢?使用在线色码转换器@JeruLuke,我认为你没有领会我的意思。我不想搜索整个图像,只是在小轮廓内。我知道如何过滤颜色,只是不知道如何指定位置边界。因为你已经找到了想要的轮廓区域,你可以掩盖掉不想要的区域