How do I draw the scatterplot of an RGB image?

6 个评论

Can you elaborate? I don't understand the question
I need to draw pixel intensity distribution of two neighbouring pixels at horizontal , vertical and digonal directions
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?

请先登录,再进行评论。

 采纳的回答

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 个评论

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

请先登录,再进行评论。

更多回答(1 个)

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

类别

帮助中心File Exchange 中查找有关 Scatter Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by