size differ when processing

Asked by kash on 31 Aug 2012
Latest activity Commented on by kash on 1 Sep 2012

In my code below can u tell why the number of elements are different or size is different

>> img=imread('peppers.png');
>> flatImg = double(reshape(img,size(img,1)*size(img,2),size(img,3)));
idx = kmeans(flatImg,3)
size(flatImg)
196608           3
size(idx)
196608           1

please provide assistance

0 Comments

kash

Products

No products are associated with this question.

1 Answer

Answer by Image Analyst on 31 Aug 2012
Accepted answer

You have 196608 pixels. In flatImg you rearranged them into rows where each column is the red, green, and blue values.

With kmeans, each of the 196608 pixels is classified as a "1", "2", or a "3" depending on its color, so it's a 1D array. There is no information along any second dimension like there was with flatImg.

There is no reason why they should be the same size because they represent different things. Do you think they should?

3 Comments

kash on 31 Aug 2012

So how to get information along 2nd and 3rd dimensions or else is these information enough for getting accurate results for rgb image

Image Analyst on 31 Aug 2012

What second and third dimension? You have a list of classifications for each pixel. For example, pixel 1 might be class 3 and pixel 2 might be class 2, etc. You have to reshape that "idx" into a 2D image (the same size as your original image) if you want the classified image. It will have the same number of gray levels as classes you have, obviously.

kash on 1 Sep 2012

ok thanks Analyst

Image Analyst

Contact us