How to draw a graph of an image with frequency in y axis and pixel value in x axis in matlab?

4 visualizzazioni (ultimi 30 giorni)
How to draw a graph of an image with frequency in y axis and pixel value in x axis in matlab?
  3 Commenti

Accedi per commentare.

Risposta accettata

Image Analyst
Image Analyst il 26 Lug 2015
% Extract the individual red, green, and blue color channels.
redChannel = secret(:, :, 1);
greenChannel = secret(:, :, 2);
blueChannel = secret(:, :, 3);
[pixelCountsR, grayLevelsR] = imhist(redChannel);
[pixelCountsG, grayLevelsG] = imhist(greenChannel);
[pixelCountsB, grayLevelsB] = imhist(blueChannel);
plot(grayLevelsR, pixelCountsR, 'r-', 'LineWidth', 2);
hold on;
plot(grayLevelsG, pixelCountsG, 'r-', 'LineWidth', 2);
plot(grayLevelsB, pixelCountsB, 'r-', 'LineWidth', 2);
grid on;
fontSize = 20;
ylabel('Frequency', 'FontSize', fontSize);
xlabel('Pixel Value', 'FontSize', fontSize);
Then just do the same for share. Then you can use text() and annotation() to add text labels and arrows wherever you want them. Or you can use legend().
  3 Commenti
Anushka
Anushka il 21 Ago 2015
Modificato: Image Analyst il 21 Ago 2015
Hi,Image Analyst
Can you please tell me a way to divide the y axis as shown in the figure ie,0.000,0.002 and so on.
Image Analyst
Image Analyst il 21 Ago 2015
Anushka:
Try this:
x = 0:255;
y = 0.0018 * rand(1, length(x));
plot(x, y, 'b-');
ax = gca;
ax.XTick = 0:50:250;
yTicks = 0:.0002:.0018;
ax.YTick = yTicks;
for k = 1 : length(yTicks)
YTickLabels{k} = sprintf('%.4f', yTicks(k));
end
ax.YTickLabels = YTickLabels;

Accedi per commentare.

Più risposte (1)

Guillaume
Guillaume il 26 Lug 2015

Community Treasure Hunt

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

Start Hunting!

Translated by