1. A method for segmenting blood vessels comprising: receiving at least one angiogram frame; preprocessing, by a processor, the angiogram frame by applying a Butterworth bandpass filter to suppress high and low frequency background noise; performing bottom-up filtering of the preprocessed angiogram frame; performing top-down segmentation of the preprocessed angiogram frame based on the results of the bottom-up filtering; iteratively repeating the bottom-up filtering and the top-down segmentation until the difference between results of the top-down segmentation from consecutive iterations is equal to or below a threshold value; outputting the results of the top-down segmentation based on a determination that a difference between results of the top-down segmentation from consecutive iterations is below or equal to the threshold value.