在opencv中,如何获得contour所包围的范围内的值

如果你想使用opencv区分边界的话,可以使用findContours,但是在确认边界后,

你又想知道边界里面或者外面是什么,你可以使用pointPolygonTest方法来判断。

如下例子:

  cv::Point2f findPointInContour(cv::Rect& rect, std::vector< cv::Point > contour)
  {
    cv::Point2f onTheEdge1;
    int where = 0;

    for (int i = rect.x; i < rect.x + rect.width; i++) {
      for (int j = rect.y; j < rect.y + rect.height; j++) {
        where = (int) (cv::pointPolygonTest(contour, cv::Point2f(i, j), false));

        //cout << "x = " << i << " y = " << j << "distance " << where << endl;
        if (where > 0) { //inside
          return cv::Point2f(i, j);
        } else if (where == 0) { //on the edge
          onTheEdge1 = cv::Point2f(i, j);
        }
      }
    }

    return onTheEdge1;
  }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 黄色在HSV颜色空间范围是H:30-60,S:43-255,V:46-255。下面是使用OpenCV在Python获取黄色区域的代码示例: ``` import cv2 import numpy as np # 读取图像 img = cv2.imread('image.jpg') # 转换颜色空间为HSV hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # 设定黄色区域的范围 lower_yellow = np.array([30, 43, 46]) upper_yellow = np.array([60, 255, 255]) # 根据设定的范围获取黄色区域 mask = cv2.inRange(hsv, lower_yellow, upper_yellow) # 显示黄色区域 cv2.imshow('Yellow', mask) cv2.waitKey(0) cv2.destroyAllWindows() ``` ### 回答2: 在OpenCV,HSV(色调、饱和度、明度)是一种常用于图像分析和颜色识别的颜色表示方式。要找出黄色的HSV范围,我们需要理解HSV颜色空间黄色的色调和饱和度的范围。 首先,黄色的色调范围在0到60度之间。这意味着在HSV颜色空间,黄色的色调处于这个范围内。饱和度通常选择在0.1到1之间,因为较低的将使颜色变得较为灰暗,而较高的则使颜色更加鲜艳。 接下来,我们需要确定明度的范围。明度反映了颜色的亮度,通常在0.6到1之间。较低的将使颜色更暗,而较高的则将颜色保持明亮。 综上所述,黄色的HSV范围如下所示: - 色调(H):0-60度 - 饱和度(S):0.1-1 - 明度(V):0.6-1 在实际使用,我们可以使用这些范围来提取图像的黄色区域,以进行后续的处理和分析。 ### 回答3: 在OpenCV,黄色的HSV范围常常被用于颜色识别和分割任务。HSV(Hue, Saturation, Value)是一种常用的颜色模型,通过使用HSV范围,我们可以确定黄色在HSV颜色空间范围。 黄色的HSV范围通常可以设置为: - 色调(Hue)范围:20°到30° - 饱和度(Saturation)范围:50%到100% - (Value)范围:50%到100% 这个范围的设置是基于常见的黄色色调,饱和度和亮度的观察结果得出的。当我们使用OpenCV的颜色识别或分割函数时,可以将图像转换为HSV颜色空间,然后将设定好的范围应用于图像,从而找到符合范围的黄色像素。 需要注意的是,不同的光照条件和亮度可能会导致颜色的变化,因此我们在实际应用可能需要根据具体场景进行调整和微调。此外,在HSV颜色空间,不同的软件和算法可能会略有不同的具体范围设定,因此也需要根据实际情况进行调整和测试。 总之,通过在OpenCV设定好黄色的HSV范围,我们可以很方便地处理和识别出图像的黄色区域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值