如何从 getOrientation() 和 Open CV 代码返回方向角度?

Posted

技术标签:

【中文标题】如何从 getOrientation() 和 Open CV 代码返回方向角度?【英文标题】:How do I return the angle of orientation from getOrientation() and Open CV code? 【发布时间】:2022-01-10 02:09:44 【问题描述】:

我正在尝试查找图像中对象的方向角度。在图像输出中,图像包含轴和旋转度数,我想要那个度数的位置,这样我就可以将该数据写入.csv。换句话说,我需要输出角度的值而不仅仅是图像上的注释。我附上了我的输出图片,下面是与方向有关的数据部分。

我正在使用 OpenCV 包。

for i, c in enumerate(contours):

  # Calculate the area of each contour
  area = cv.contourArea(c)

  # Ignore contours that are too small or too large
  if area < 3700 or 100000 < area:
    continue

  # Draw each contour only for visualisation purposes
  cv.drawContours(img, contours, i, (0, 0, 255), 2)

  # Find the orientation of each shape
  getOrientation(c, img)

示例输出图像:

【问题讨论】:

把角度还原成什么? getOrientation()来自什么软件? 我刚刚做了一些改动 我不明白您的问题...根据示例图像,您可以使用Fitting a Line 示例(对于每个轮廓),例如vx, vy, cx, cy = cv2.fitLine(c, cv2.DIST_L2, 0, 0.01, 0.01)。直线角度等于:(180/np.pi)*math.atan2(vy, vx) 【参考方案1】:

你可以根据自己的需要使用这些opencv函数

fitEllipse()fitEllipseAMS()fitEllipseDirect()

基本上,该函数需要一个点数组(您的轮廓)并返回值。这些值之一是轮廓的orientation

https://docs.opencv.org/4.5.2/d3/dc0/group__imgproc__shape.html#gaf259efaad93098103d6c27b9e4900ffa

【讨论】:

以上是关于如何从 getOrientation() 和 Open CV 代码返回方向角度?的主要内容,如果未能解决你的问题,请参考以下文章

javascript getOrientation_of_device_Landscape_Portrait

Lua - getOrientation() throw Attempt to call global (a nil value)

如何从OPENWRT固件上,用TFTP软件升级新版本OP

sCrypt 合约中如何使用优化版 OP_PUSH_TX

如何在 Tensorflow C++ 中设置 inter_op_parallelism_threads 和 intra_op_parallelism_threads 以进行 Seesion 配置

如何将我的 JAVA 卡生命周期状态更改为 OP_READY?