Manually define ROIs
In this notebook, we (i) open the ROI interface for one video in the project, (ii) draw some ROIs on that video, (iii) duplicate those ROIs on the rest of the videos in the project, and lastely (iv) iterate over the videos in the project correcting The duplicated ROS.
[ ]:
from simba.utils.read_write import find_files_of_filetypes_in_directory
from simba.utils.enums import Options
from simba.roi_tools.roi_ui import ROI_ui
from simba.roi_tools.roi_utils import multiply_ROIs
[2]:
# DEFINE THE PATH TO THE SIMBA PROJECT CONFIG, AND THE PATH TO THE DIRECTORY IN SIMBA WHERE THE VIDEOS ARE STORED.
PROJECT_CONFIG_PATH = r"C:\troubleshooting\mitra\project_folder\project_config.ini"
VIDEO_DIR_PATH = r'C:\troubleshooting\mitra\project_folder\videos'
[3]:
#CREATE A LIST OF PATHS TO THE VIDEO FILES THAT EXIST IN THE SIMBA PROJECT
video_file_paths = find_files_of_filetypes_in_directory(directory=VIDEO_DIR_PATH, extensions=Options.ALL_VIDEO_FORMAT_OPTIONS.value)
[4]:
#WE CAN PRINT IT OUT THE FIRST 5 VIDEO PATHS IN THIS LIST TO SEE HOW IT LOOKS.
print(video_file_paths[:5])
['C:\\troubleshooting\\mitra\\project_folder\\videos\\501_MA142_Gi_CNO_0514.mp4', 'C:\\troubleshooting\\mitra\\project_folder\\videos\\501_MA142_Gi_CNO_0516.mp4', 'C:\\troubleshooting\\mitra\\project_folder\\videos\\501_MA142_Gi_CNO_0521.mp4', 'C:\\troubleshooting\\mitra\\project_folder\\videos\\501_MA142_Gi_DCZ_0603.mp4', 'C:\\troubleshooting\\mitra\\project_folder\\videos\\501_MA142_Gi_Saline_0513.mp4']
[5]:
# WE RUN THE ROI DRAWING INTERFACE AND DRAW ROIs ON THE FIRST VIDEO IN THE LIST.
# ONCE THE ROIs ARE DRAWN ON THIS VIDEO, REMEMBER TO CLICK "SAVE ROI DATA", AND THEN CLOSE ALL OPEN THE INTERFACE WINDOWS.
_ = ROI_definitions(config_path=PROJECT_CONFIG_PATH, video_path=video_file_paths[0])
C:\Users\sroni\.conda\envs\simba\lib\_collections_abc.py:666: MatplotlibDeprecationWarning:
The global colormaps dictionary is no longer considered public API.
SIMBA COMPLETE: ROI definitions saved for video: 501_MA142_Gi_CNO_0514 complete
[6]:
#NEXT, WE MULTIPLY ALL THE ROIs ON THE FIRST VIDEO ON THE LIST ON ALL OTHE VIDEOS IN THE SIMBA PROJECT (THIS PROJECT CONTAINS A TOTAL OF 100 VIDEOS)
multiply_ROIs(config_path=PROJECT_CONFIG_PATH, filename=video_file_paths[0])
SIMBA COMPLETE: ROIs for 501_MA142_Gi_CNO_0514 applied to a further 99 videos (Duplicated rectangles count: 1, circles: 0, polygons: 0). complete
Next, click on "draw" to modify ROI location(s) or click on "reset" to remove ROI drawing(s)
[14]:
#FINALLY, WE START TO ITERATE OVER ALL OTHER VIDEOS IN THE PROJECT (OMITTING THE FIRST VIDEO), AND CORRECT THE ROIs.
# I DON'T HAVE A GOOD WAY OF AUTMATICALLY OPENING THE NEXT VIDEO ONCE A VIDEO IS CLOSED AT THE MOMENT,
# SO WILL HAVE TO MANUALLY CHANGE `video_file_paths[1]` TO `video_file_paths[2]` etc.
_ = ROI_definitions(config_path=PROJECT_CONFIG_PATH, video_path=video_file_paths[1])
[ ]: