見出し画像

labelImgの短形操作のエラー修正

初アノテーションで、いきなりエラーでした。

エラー内容

\Python\Python312\Lib\site-packages\libs\canvas.py", line 533, in paintEvent
    p.drawLine(QLine(self.prev_point.x(), 0, self.prev_point.x(), self.pixmap.height()))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: arguments did not match any overloaded call:
  QLine(): too many arguments
  QLine(pt1_: QPoint, pt2_: QPoint): argument 1 has unexpected type 'float'
  QLine(x1pos: int, y1pos: int, x2pos: int, y2pos: int): argument 1 has unexpected type 'float'
  QLine(a0: QLine): argument 1 has unexpected type 'float'

float型はあかんで、int型やでえ、ということらしいです。

修正後コード コメントで元残しています line 526から


            #p.drawRect(left_top.x(), left_top.y(), rect_width, rect_height)
            p.drawRect(int(left_top.x()), int(left_top.y()), int(rect_width), int(rect_height))


        if self.drawing() and not self.prev_point.isNull() and not self.out_of_pixmap(self.prev_point):
            p.setPen(QColor(0, 0, 0))
            # p.drawLine(self.prev_point.x(), 0, self.prev_point.x(), self.pixmap.height())
            p.drawLine(int(self.prev_point.x()), 0, int(self.prev_point.x()), self.pixmap.height())

            # p.drawLine(0, self.prev_point.y(), self.pixmap.width(), self.prev_point.y())
            p.drawLine(0, int(self.prev_point.y()), self.pixmap.width(), int(self.prev_point.y()))

アノテーション疲れますね。AIがやってくれたらいいのに!!

この記事が気に入ったらサポートをしてみませんか?