MATLAB Answers

0

How do I draw the scatterplot of an RGB image?

Asked by Parveiz Lone on 3 Aug 2019
Latest activity Commented on by Image Analyst
on 4 Aug 2019

  6 Comments

Yes, did you see my answer down below in the Answers section?
Yes, sorry. I'm just not a native english speaker
Parveiz, please explain in words what the two axes of your scatterplots represent.
  1. What does n,m on the x axis represent?
  2. What does n+1, m+1 on the y axis represent?
  3. Why do both of your scatterplots have the same x and y labels? They are not the same scatterplots yet they have the same axis labels. Why?

Sign in to comment.

2 Answers

Answer by KALYAN ACHARJYA on 4 Aug 2019
Edited by KALYAN ACHARJYA on 4 Aug 2019
 Accepted Answer

image_test=rgb2gray(imread('2.png')); % Change the image
[rows colm]=size(image_test);
original_data=zeros(1,56512);
diag_data=zeros(1,56512);
hor_data=zeros(1,56512);
ver_data=zeros(1,56512);
l=1;
%ignoring boundary elements
for i=2:rows-1
for j=2:colm-1
original_data(l)=image_test(i,j);
diag_data(l)=image_test(i+1,j+1);
hor_data(l)=image_test(i,j+1);
ver_data(l)=image_test(i+1,j);
l=l+1;
end
end
subplot(131),plot( original_data,diag_data,'b.','linewidth',2);
xlabel('n,m'), ylabel('n+1,m+1'),title('Diagonal');
subplot(132),plot( original_data,diag_data,'b.','linewidth',2);
xlabel('n,m'), ylabel('n,m+1'),title('Horizontal');
subplot(133),plot( original_data,diag_data,'b.','linewidth',2);
xlabel('n,m'), ylabel('n+1,m'),title('Vertical');

  3 Comments

subplot(131),scatter( original_data,diag_data,'b.','linewidth',2);
%..............^^ would be same result, do in all 3 lines
What 56512 indicate ? Or is it m*n size of image
Possible total iterations or
row*colm - ignoring boundary pixels

Sign in to comment.


Answer by Image Analyst
on 3 Aug 2019

You need to use colorcloud(). It does a 3-D scatterplot of the RGB gamut.

  0 Comments

Sign in to comment.