MATLAB Answers

nadia naji

how can i save every pixel of image as a row of new matrix?

Asked by nadia naji
on 27 Oct 2012
Accepted Answer by Matt J

i have an image in lab space i want to save the value of l,a, b of every pixel as a row of new matrix for example if i have 2*3 matrix i want to make 6*3 matrix that every row of this matrix show the pixel and every column of every row is the value of l,a and b channel is there any way to do this without using for loop i want to do this very fast? thanks in advance

  2 Comments

Image Analyst
on 27 Oct 2012

I'm having a hard time visualizing. Can you provide an example. Because an lab image is a 3 dimensional image not a 2D (2*3) image, at least it is if you're starting with a 2D color image, so I don't know what the 2*3 refers to. Do you mean 2 rows by 3 columns by 3 color channels? And then I don't know what "show the pixel" means. I also don't know what show "every column of every row is the value of l,a and b channel" means. Do you mean that you want to just have all the values listed like this in a numerical array

row1  column1 lValue1 aValue1 bValue1
row1  column2 lValue2 aValue2 bValue2
etc.

Products

No products are associated with this question.

2 Answers

Matt J
Answer by Matt J
on 27 Oct 2012
Edited by Matt J
on 27 Oct 2012
 Accepted answer
 result = reshape(Image,[],3);

  1 Comment

nadia naji
on 27 Oct 2012

thanks for your answer before i separate different channel and then use etc target(:,1)=l(:), target(:,2)=a(:),target(:,3)=b(:) but in this war i dont need do this thanks a lot


Answer by nadia naji
on 27 Oct 2012

the answer by Matt solve my problem before that i separate different channel and then use etc target(:,1)=l(:), target(:,2)=a(:),target(:,3)=b(:) 2*3 was an example for size of matrix and i know that the image is 2d but with 3 channels thanks for your answers and excuse me for my bad tag

  0 Comments


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today