【问题标题】:TypeError: unorderable types: tuple() > int()TypeError:不可排序的类型:元组()> int()
【发布时间】:2020-09-05 15:24:28
【问题描述】:

我正在尝试使用以下代码来校正图像,但收到错误消息:

TypeError: unorderable types: tuple() > int()

错误在以下行:

坐标 = np.column_stack(np.where(thresh > 0))

完整代码是:

import numpy as np
import argparse
import cv2

image= cv2.imread('das.jpg',0)

gray = cv2.bitwise_not(image)

thresh = cv2.threshold(gray, 0, 255,cv2.THRESH_BINARY | cv2.THRESH_OTSU)

coords = np.column_stack(np.where(thresh > 0))
angle = cv2.minAreaRect(coords)

if angle < -45:
    angle = -(90 + angle)
else:
    angle=-angle
(h, w) = image.shape[:2]
center = (w // 2, h // 2)
M = cv2.getRotationMatrix2D(center, angle, 1.0)
rotated = cv2.warpAffine(image, M, (w, h),flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_REPLICATE)
cv2.imwrite('a.jpg',rotated)

【问题讨论】:

  • 请显示minimum working examplethresh 似乎是一个元组,您可能期望得到不同的结果
  • @rpoleski 我已经更新了代码。
  • 我刚刚用谷歌搜索了它,found cv2.threshold() 返回一个元组。您可能应该丢弃元组的第一个元素。
  • @rpoleski 你能告诉我当我这样做时问题是如何传播到角度变量的吗?
  • 不要盲目地尝试不同的东西以希望找到有用的东西,而是查看问题变量thresh。它是什么?显然是tuple。但是什么元组?阅读文档。这是调试的基础——在你理解它之前,你无法解决问题。

标签: python numpy typeerror


【解决方案1】:

试试:

coords = np.column_stack(np.where(thresh[1] > 0))

【讨论】:

  • 我已经试过了。它仍然显示相同的错误,但在不同的行中:if angle
  • 这是一个不同的问题。我刚刚检查了minAreaRect()“找到包含输入二维点集的最小区域的旋转矩形。”您将输出视为某种角度,但它似乎不是角度。
【解决方案2】:

我终于让它工作了 cv2.threshold 返回一个由 2 个元素组成的元组,第一个是最佳阈值,第二个是输出图像的数组。因此将错误的行更改为:

coords = np.column_stack(np.where(thresh[1] > 0))

在这之后,同样的问题发生在角度变量上,它也是一个由 3 个元素组成的元组。第一个元素提供矩形的中心,第二个元素提供高度和宽度,第三个元素提供我们需要的顺时针方向的旋转角度。要将角度转换为所需格式,我们需要将其转换为列表,以便对其进行格式化。因此代码需要改成:

    angle = cv2.minAreaRect(coords)
    new_list=list(angle)

    if new_list[2] < -45:
      new_list[2] = -(90 + new_list[2])
    else:
      new_list[2]=-new_list[2]
    (h, w) = image.shape[:2]
     center = (w // 2, h // 2)
    M = cv2.getRotationMatrix2D(center, new_list[2], 1.0)

其余代码保持不变。

【讨论】:

    猜你喜欢
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    相关资源
    最近更新 更多