This paper presents a novel unsupervised iterative algorithm for segmenting blood vessels in fundus images. The algorithm first enhances vessel pixels and extracts an initial segmentation using thresholding. It then iteratively identifies new vessel pixels using adaptive thresholding of the residual image, and regions them into the existing segmentation. A novel stopping criterion terminates the iterations when false edges are identified instead of actual vessels. The algorithm achieves 93.2%-95.35% segmentation accuracy on abnormal retinal images from the STARE dataset in an average of 2.45 to 8 seconds per image, depending on the dataset. It is also over 90% accurate for segmenting peripapillary vessels.