generate 2 images, one at which you threshold for bright values, and one for which you threshold for dark values. Once you have that you can label the regions with bwlabel. Find the locations with regionprops. The links would follow the coordinates of the regions detected previously. Once you have those links and difference between the coordinates you can look for variations in the distances of neighbouring elements. If there are no defects, all the distances should be regular, with defects there will be smaller and larger distances.