开发者

Count black spots in an image - iPhone - Objective C

开发者 https://www.devze.com 2023-04-08 22:40 出处:网络
I need to count the number of black spots in an image(Not the percentage of black spots but the count). Can anyone suggest a step wise procedure that is used in image manipulation to count the spots.

I need to count the number of black spots in an image(Not the percentage of black spots but the count). Can anyone suggest a step wise procedure that is used in image manipulation to count the spots.

Objective : Count black spots in an image

What I've done till now : 1. Converted image to grayscale 2. Read the pixels for their intensity values 开发者_Go百科3. I have set a threshold to find darker areas

Other implementations: 1. Gaussian blur 2. Histogram equalisations

What i have browsed : Flood fill algorithms, Water shed algorithms

Thanks a lot..


you should first "label" the image, then count the number of labels you have found.

the label operation is the first operation done in a blob analysis operation: it groups similar adjacent pixels into a single object, and assign a value to this object. the condition for grouping generally is a background/foreground distinction: the label operation will group adjacent pixels which are part of the foreground, where background is defined as pure black or pure white, and foreground is any pixel whose color is not the color of the background.

the label operation is pretty easy to implement and requires not much resources.

_(see the wikipedia article, or this page for more information on labelling. a good paper on the implementation of the label operation is "Two Strategies to Speed up Connected Component Labeling Algorithms" by Kesheng Wu, Ekow Otoo and Kenji Suzuki)_

after labelling, count the number of labels (you can even count the labels while labelling), and you have the number of "black spots".

the next step is defining what a black spot is: converting your input image into a grayscale image (by converting it to HSL and using the luminance plane for example) then applying a threshold should do it. if the illumination of your input image is not even, you may need a better thresholding algorithm (a form of adaptive threshold)...


It sounds like you want to label the black spots (Blobs) using a binary image labelling algorithm. This should give you a place to start

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号