detection.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:ShadowRemoval 作者: Orcuslc 项目源码 文件源码
def grow_seed(img, seed_loc):
    tmp = np.array(img)
    for i in range(DOWNSAMPLE): # Downsample the original image
        img_ds = downsample(tmp)
        tmp = img_ds
    seed_loc_ds = (int(seed_loc[0]*RATE**DOWNSAMPLE), int(seed_loc[1]*RATE**DOWNSAMPLE))
    seed_pixel_ds = img_ds[seed_loc_ds]
    edges_ds = cv2.Canny(cv2.GaussianBlur(img_ds, (3, 3), 0), CANNY[0], CANNY[1])
    seed_mask_ds = np.zeros(get_size(img_ds))
    seed_mask_ds[seed_loc_ds] = 1
    visited = np.zeros(get_size(img_ds))
    def search(point, seed_pixel):
        if point[0] < 0 or point[1] < 0 or point[0] >= img_ds.shape[0] or point[1] >= img_ds.shape[1]:
            return
        if visited[point]:
            return
        elif edges_ds[point]:
            return
        elif(dist(img_ds[point], seed_pixel) < SEED_TOL):
            visited[point] = 1
            seed_mask_ds[point] = 1
            for i in range(4):
                search((point[0]+search_directions[i][0], point[1]+search_directions[i][1]), seed_pixel)
    for i in range(SEED_ITER):
        search(seed_loc_ds, seed_pixel_ds)
        seed_pixel_ds = np.mean(img_ds[np.where(seed_mask_ds == 1)], axis = 0)
        print(seed_pixel_ds)
        visited[:, :] = 0
    for i in range(DOWNSAMPLE):
        seed_mask_ds = upsample(seed_mask_ds)
    seed_mask_ds[np.where(seed_mask_ds > 0.5)] = 1
    seed_mask_ds[np.where(seed_mask_ds <= 0.5)] = 0
    return seed_mask_ds
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号