def forward_json(self): json_path = self.seleDir + '\\' + self.dir_list[ self.dir_show_num].split('.', 2)[0] + '.json' if os.path.exists(json_path): with open(json_path, "r", encoding="utf-8") as f: data = json.load(f) # self.tempDict = data[0]['labels'] # print(self.tempDict) # print(data) for shape in data: points = shape['position'] label = shape['labels'] start_point = QtCore.QPointF(points[0]['x'], points[0]['y']) # 左上 end_point = QtCore.QPointF(points[1]['x'], points[1]['y']) # 右下 two_points = Shape() two_points.addPoint(start_point) two_points.addPoint(end_point) four_points = self.canvas.points_to_point_four( copy.deepcopy(two_points)) with_points_shape = Shape() with_points_shape.points = four_points with_points_shape.close() # 闭合最后一条线 self.canvas.shapes.append(with_points_shape) self.canvas.shapes[-1].label = label self.canvas.repaint() else: self.tempDict = copy.deepcopy(self.exampleDict)
def addBox(self, x1y1, x2y2, name): shape = Shape(name) shape.points = [QPointF(x1y1[0], x2y2[1]), QPointF(*x2y2), QPointF(x2y2[0], x1y1[1], ), QPointF(*x1y1), ] shape.close() # self.deSelectShape() self.shapes.append(shape) shape.selected = True self.selectedShape = shape self.boundedShiftShape(shape) return shape
def makeBackRotatedShape(self, points, angle): canvas=Canvas() shape=Shape() xmax=points[2][0] xmin=points[0][0] ymax=points[2][1] ymin=points[0][1] shape.centerPoint=QPointF(( xmin+xmax)/2,(ymin+ymax)/2) shape.points= [QPointF(point[0],point[1]) for point in points] rotatedShapePoints=canvas.getRotatedShape(shape,angle) points= [(round(point.x(),0),round(point.y(),0)) for point in rotatedShapePoints] return points
def loadParams(self): try: params = load_from_json("params/param.json") shapes = params["shapes"] for sh in shapes: index, label, r = sh["id"], sh["label"], sh["rect"] generate_color = generateColorByText(label) shape = Shape(label=label, line_color=generate_color, paintLabel=True) # shape.fill = True shape.fill_color = generate_color shape.points = 4 * [QPoint()] shape.points[0] = QPointF(r[0], r[1]) shape.points[1] = QPointF(r[0] + r[2], r[1]) shape.points[2] = QPointF(r[0] + r[2], r[1] + r[3]) shape.points[3] = QPointF(r[0], r[1] + r[3]) shape.close() self.canvas.shapes.append(shape) self.addLabel(shape) except: pass