根据小图文件名在原图画框

找到小图片在原图的位置进行标记

import cv2, os

cells_root = './cells/crop/' #小图路径
FOV_range_root = 'origin_imgs_range' #原图路径

def get_cells_location(cells_root_):
    cells_dir = os.listdir(cells_root_)
    cells_location = []
    for n in cells_dir:
        temp = []
        cellroot_split = n.split('_')
        temp.append(cellroot_split[0]) # FOV名字
        temp.append(cellroot_split[3]) # 坐标
        temp.append(cellroot_split[4])
        temp.append(cellroot_split[5])
        temp.append(cellroot_split[6].split('.')[0])
        cells_location.append(temp)
    return cells_location
        
def FOV_range_fun(cells_location_, FOV_range_root_):
    for n in cells_location_:
        print(n)
        fov_Id = n[0]
        fov_Id_path = os.path.join(FOV_range_root_, fov_Id)
        fov_Id_path_new = os.path.join(FOV_range_root_, fov_Id)
        x1 ,y1, x2, y2 = int(n[1]), int(n[2]), int(n[3]), int(n[4])
        x_o = int((x1+x2)/2)
        y_o = int((y1+y2)/2)
        side = 50
        x1_, y1_, x2_, y2_ = x_o - side, y_o - side, x_o + side, y_o + side
        print(fov_Id_path, x1_, y1_, x2_, y2_)
        img = cv2.imread(fov_Id_path)
        first_point = (x1_, y1_)
        last_point = (x2_, y2_)
        cv2.rectangle(img, first_point, last_point, (0,255,0),2)
        cv2.imwrite(fov_Id_path_new,img)

if __name__ == '__main__':
    cells_location = get_cells_location(cells_root)
#     print(cells_location)
    FOV_range_fun(cells_location, FOV_range_root)

  

原文地址:https://www.cnblogs.com/niulang/p/12047844.html