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

2 次查看(过去 30 天)
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
  1 个评论
Image Analyst
Image Analyst 2012-10-27
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.

请先登录,再进行评论。

采纳的回答

Matt J
Matt J 2012-10-27
编辑:Matt J 2012-10-27
result = reshape(Image,[],3);
  1 个评论
nadia naji
nadia naji 2012-10-27
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

请先登录,再进行评论。

更多回答(1 个)

nadia naji
nadia naji 2012-10-27
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

类别

Help CenterFile Exchange 中查找有关 Images 的更多信息

标签

尚未输入任何标签。

Community Treasure Hunt

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

Start Hunting!

Translated by