gpt4 book ai didi

python - OpenCV,两条曲线之间的面积

转载 作者:太空宇宙 更新时间:2023-11-03 21:36:40 24 4
gpt4 key购买 nike

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

enter image description here

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

最佳答案

您可以通过绘图创建 mask ellipse , 但你应该从你的等式中得到以下数据,

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

如果你得到了上面两条曲线的数据,你可以简单地画出ellipse thickness=CV_FILLED 就像,

  1. 首先画出最大的椭圆,color=255。
  2. 现在绘制第二个颜色为 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);

enter image description here

如果您想将其用作蒙版,请将其绘制在单 channel 图像上。

编辑:-

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

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

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com