How to detect peaks in laser strip
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I = imread('1.jpg'); z = im2bw(I); skel = bwmorph(z,'skel',Inf); imshow(skel)
I want to detect middle of laser strip in image 1, called peak detection.. i tried thinning and morphological operations, but it exactly doesn't work and gives image 2.. I want single middle line.. So, which function or logic or code may be applied, please suggest me...
0 commentaires
Réponse acceptée
Image Analyst
le 19 Nov 2012
Modifié(e) : Image Analyst
le 19 Nov 2012
I'd just scan down line by line, determining the center on a line-by-line basis. You could just threshold and determine the center that way, or, if it has a nice non-saturated profile, use something like a Savitzky-Golay filter (a sliding window polynomial fit, sgolay() is in the signal processing toolbox) to find the peak. The Signal Processing Toolbox also has a findpeaks() function. Then make groups where the column of the center doesn't move much from line to line. Then fit each group to a line with polyfit().
2 commentaires
Plus de réponses (1)
Harshit
le 19 Nov 2012
It is not possible due to noise. Although if you just want a line use hough transform to get different lines and then select the biggest line.
1 commentaire
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!