How to label each line in the plot

16 vues (au cours des 30 derniers jours)
Med Future
Med Future le 28 Mar 2022
Hello everyone i hope you are doing well. I want to label y axis with the value i get from
Value= unique(whiteLineRows1);
but when i plot it gives the Value= as in the image attached
How can i plot the value on each line
path = 'C:\Users\DELL\Documents\MATLAB\Examples\R2021b\phased\ModClassificationOfRadarAndCommSignalsExample\NewDataset\DatasetGeneration\Detection\ImageDetection\imageclass_001001.png';
rgbImage = imread(path);
[rows, columns, numberOfColorChannels] = size(rgbImage);
if numberOfColorChannels > 1
grayImage = rgbImage(:, :, 3);
else
grayImage = rgbImage;
end
[rows, columns, numberOfColorChannels] = size(rgbImage);
mask = grayImage >= 128;
[labeledImage, numRegions] = bwlabel(mask);
props = regionprops(labeledImage, 'Area', 'Centroid');
allLengths = [props.Area];
centroids = vertcat(props.Centroid);
whiteLineRows1 = centroids(:, 2);
Value= unique(whiteLineRows1);
hold on
Levels=length(Value);
for k = 1 : Levels
str = sprintf('Value %d', Value(k))
yline(Value, 'LineWidth', 2, 'Color', 'r','Label',str);
hold off
end

Réponse acceptée

Scott MacKenzie
Scott MacKenzie le 28 Mar 2022
The main problem in the image is that the values are superimposed. This can be fixed by using an index into the Values array for each line:
for k = 1 : Levels
str = sprintf('Value %d', Value(k))
yline(Value(k), 'LineWidth', 2, 'Color', 'r','Label',str); % add index into Value
hold off
end

Plus de réponses (0)

Catégories

En savoir plus sur Images dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by