File size: 2,226 Bytes
68b5c0f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    # def process_image(img):
    #     results = detect_solar_panel(img)
    #     sections = []
    #     for result in results:
    #         result: Results
    #         # print(result)
    #         try:
    #             boxes = result.boxes.xyxy[0].tolist()
    #             # Unpack boxes
    #             x1, y1, x2, y2 = boxes
    #             sections.append(((int(x1), int(y1), int(x2), int(y2)), f"{section_labels[0]} Bounding Box"))
    #             #Create 4 centroids around the true centroid shifted by a delta value
    #             delta = 0.3
    #             delta_x = (x2 - x1) * delta
    #             delta_y = (y2 - y1) * delta
    #             x_centroid = (x1 + x2) / 2
    #             y_centroid = (y1 + y2) / 2
    #             xtop_centroid = x_centroid
    #             ytop_centroid = y_centroid + delta_y
    #             xright_centroid = x_centroid + delta_x
    #             yright_centroid = y_centroid
    #             xbottom_centroid = x_centroid
    #             ybottom_centroid = y_centroid - delta_y
    #             xleft_centroid = x_centroid - delta_x
    #             yleft_centroid = y_centroid
    #             sam_mask, sam_scores = sam.segment(img, [[
    #                 [xtop_centroid, ytop_centroid], 
    #                 [xright_centroid, yright_centroid],
    #                 [xbottom_centroid, ybottom_centroid],
    #                 [xleft_centroid, yleft_centroid]
    #             ]])
    #             squeezed_sam_mask_tensor = sam_mask[0].squeeze()
    #             squeezed_sam_scores_tensor = sam_scores[0].squeeze()
    #             print(f"sqeezed sam mask shape {squeezed_sam_mask_tensor.shape}")
    #             print(f"sqeezed sam scores shape {squeezed_sam_scores_tensor.shape}")
    #             for i in range(0, squeezed_sam_mask_tensor.shape[0]):
    #                 flat_mask = squeezed_sam_mask_tensor[i].numpy()
    #                 sections.append((flat_mask, f"{section_labels[0]} Mask {i} - Score: {squeezed_sam_scores_tensor[i]}"))
    #                 i += 1
    #         except IndexError as e:
    #             print(f"Error processing image: {e}, probably no boxes.")
    #     return (img, sections)