Extract specific row from an image and average with a variable number of adjacent rows
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Jason
le 3 Déc 2019
Commenté : Jason
le 3 Déc 2019
Hello.
I have an image that I perfrom a "linescan" at a specific row at 'xcol'
I want to create a "thick" linescan so include the adjacent rows and then average. Below I have done it for a total of 5 rows (including the centre one).
yth_row=(img(xcol,:)+img(xcol-1,:)+img(xcol+1,:)+img(xcol-2,:)+img(xcol+2,:))/5;Extract
Can this be simplified to any (odd) number of rows to include?
0 commentaires
Réponse acceptée
Constantino Carlos Reyes-Aldasoro
le 3 Déc 2019
Certainly it can be done much easier. Instead of this
yth_row=(img(xcol,:)+img(xcol-1,:)+img(xcol+1,:)+img(xcol-2,:)+img(xcol+2,:))/5;
try this
yth_rows =(img(xcol-2:xcol+2,:); % this will select from 2 rows before to 2 after, so it is a matrix not a row
yth_row = mean(yth_rows); % obtain the average.
This has the advantage that you could even do it for n and the mean will work no matter how many lines you average, you could even do it in a single line, I did it in two to illustrate above, but this works as well
n = 2; % number of lines above and below to consider
yth_rows =mean(img(xcol-n:xcol+n,:)); % select from n rows above and below average.
Hope that answers the question.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Image Processing Toolbox dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!