display of the intensity curve of the points
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Amal Felhi
il 11 Apr 2021
Commentato: Amal Felhi
il 12 Apr 2021
hello everyone, I use this code to select points :
IM=imread('capture.jpg');
imshow(IM);
impixelinfo;
[xi,yi]=getpts
I want after the selection of the points, display a curve which contains the intensity of each point
0 Commenti
Risposta accettata
Image Analyst
il 11 Apr 2021
Simply extract them
intensityProfile = zeros(1, length(xi), 'uint8');
for k = 1 : length(xi)
column = round(xi(k));
row = round(yi(k));
intensityProfile(k) = grayImage(row, column);
end
plot(intensityProfile, 'b-', 'LineWidth', 2);
3 Commenti
Image Analyst
il 11 Apr 2021
Um, do you know that your image was called IM, not grayImage? I feel like IM is not a very descriptive name so use I'd recommend to use grayImage instead. Or try this if you're not sure what type the image is:
theImage = imread('peppers.png');
subplot(1, 2, 1);
imshow(theImage);
impixelinfo;
uiwait(helpdlg('Left click points. Right click the last one to finish'));
[xi,yi]=getpts
[rows, columns, numberOfColorChannels] = size(theImage);
if numberOfColorChannels == 3
message = sprintf('The image is RGB not gray scale');
uiwait(helpdlg(message));
intensityProfile = zeros(length(xi), 3, 'uint8');
else
intensityProfile = zeros(1, length(xi), 'uint8');
end
for k = 1 : length(xi)
column = round(xi(k));
row = round(yi(k));
intensityProfile(k, :) = theImage(row, column, :);
end
subplot(1, 2, 2);
if numberOfColorChannels == 3
plot(intensityProfile(:, 1), 'r-', 'LineWidth', 2);
hold on;
plot(intensityProfile(:, 2), 'g-', 'LineWidth', 2);
plot(intensityProfile(:, 3), 'b-', 'LineWidth', 2);
else
plot(intensityProfile, 'b-', 'LineWidth', 2);
end
grid on;
ylabel('Gray Scale', 'FontSize', 18);
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Image Segmentation and Analysis in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!