我在 OpenCV 中使用 Python 库。
问题是如何在单独的 roi 中选择两条曲线上的区域?
曲线由两个二次多项式定义。

我想在曲线 1 和曲线 2 之间限制的区域找到黑色像素的数量

最佳答案

您可以通过绘制 ellipse 来创建掩码,但您应该从方程式中获得以下数据,

  • center – 椭圆的中心(这里我使用了图像的中心)。
  • 轴——椭圆主轴尺寸的一半(这里我分别为两条曲线使用了图像尺寸/2 和图像尺寸/4)。
  • 角度——以度为单位的椭圆旋转角度,(这里我使用了 0)
  • startAngle – 椭圆弧的起始角度(以度为单位)。 (这里我用了 0)
  • endAngle – 椭圆弧的结束角度(以度为单位)。(这里我使用了 -180)

  • 如果您获得了两条曲线的上述数据,您可以简单地绘制 ellipse 与厚度=CV_FILLED 之类的,
  • 首先绘制最大的椭圆,颜色为 255。
  • 现在用颜色 = 0 绘制第二个椭圆。

  • 看个例子,
       Mat src(480,640,CV_8UC3,Scalar(0,0,0));
       ellipse(src,Point(src.cols/2,src.rows/2), Size (src.cols/2,src.rows/2), 0, 0,-180,Scalar(0,0,255), -1,8, 0);
       ellipse(src,Point(src.cols/2,src.rows/2), Size (src.cols/4,src.rows/4), 0, 0,-180,Scalar(0,0,0), -1,8, 0);
    

    如果要将其用作蒙版,则将其绘制在单 channel 图像上。

    编辑:-

    要找到该区域,请在上面绘制颜色=255 的单 channel 图像。

    然后使用 countNonZero 获取白色像素数。

    关于python - OpenCV,两条曲线之间的面积,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23217763/

    10-17 00:37