程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在图像中找到多个椭圆的周长? OpenCV,Python大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在图像中找到多个椭圆的周长? OpenCV,Python?

开发过程中遇到如何在图像中找到多个椭圆的周长? OpenCV,Python的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在图像中找到多个椭圆的周长? OpenCV,Python的解决方法建议,希望对你解决如何在图像中找到多个椭圆的周长? OpenCV,Python有所启发或帮助;

我有一个包含多个胎盘的图像(白色和灰色的物体)。胎盘不是完整的椭圆。我已经在 OpenCV 中使用 fitEllipse 估计了完整的椭圆。但是,需要帮助找到估计椭圆的周长。

Image with multiple placentomes

Image with drawn ellipses in red on the placentomes

下面是我用来在胎盘上绘制椭圆的代码:-

img = cv2.imread('placentome.png')
gray = cv2.cvtcolor(img,cv2.color_BGR2GRAY)
th,threshed = cv2.threshold(gray,100,255,cv2.THRESH_BINARY)
# Find countours of placentomes
cnts,hIErs = cv2.findContours(threshed,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)[-2:]

# Draws ellipse onto objects using the contours found

for cnt in cnts:
  ellipse = cv2.fitEllipse(cnt)
  cv2.ellipse(img,ellipse,(0,255),1,cv2.liNE_AA)
   

解决方法

我假设您想计算图像中红色椭圆的周长。更多的解释会很有用。

这个问题已经部分回答了here。重要的部分我来复制:
“函数 fitEllipse 返回一个 RotatedRect其中包含椭圆的所有参数。

椭圆由 5 个参数定义:

  • xc : 中心的 x 坐标
  • yc : 中心的 y 坐标
  • a:长半轴
  • b:短半轴
  • theta:旋转角度

您可以通过以下方式获取这些参数:

RotatedRect e = fitEllipse(points);

float xc    = e.center.x;
float yc    = e.center.y;
float a     = e.size.width  / 2;    // width >= height
float b     = e.size.height / 2;
float theta = e.angle;              // in degrees

获得椭圆的周长不是一个微不足道的数学问题。可以用拉马努金方程推导出周长的近似解:

equation of Ramanujan

大佬总结

以上是大佬教程为你收集整理的如何在图像中找到多个椭圆的周长? OpenCV,Python全部内容,希望文章能够帮你解决如何在图像中找到多个椭圆的周长? OpenCV,Python所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:Python