## Working with 3D matrix in Matlab

To visualize the 3D matrix just consider that them as stack of images or layers.

{There is one more very important way, that is third dimension representing the feature vector’s length}

So a(:, :, i) = all elements in the layer i, so changing i will give you next image.

where a(r,c, i) will move in the image.

a = []; a(:,1,:) = [111 112 113 114 ; 121 122 123 124 ; 131 132 133 134]; a(:,2,:) = [211 212 213 214 ; 221 222 223 224 ; 231 232 233 234]; a(:,3,:) = [311 312 113 114 ; 321 322 323 324 ; 331 332 333 334]; a(:,4,:) = [411 412 113 114 ; 421 422 423 424 ; 431 432 433 434]; a(:,5,:)= [511 512 513 514 ; 521 522 523 524 ; 531 532 533 534];

Will make the 3D matrix ‘a’

size(a) ans = 3 5 4

That is there are 4 images and each image is of 3 rows and 5 cols.

But let’s Say you want to represent 3rd dimension as the feature vector so each a(r,c, : ) represents a feature vector.

Now let’s say you want to make a 3D matrix from one feature vector.

vt = squeeze([a( 2,1, : ) ] ); vt = vt(:)'; %//make it into 2 by 3 by length(feature) matrix %//repmat will repeat this matrix and make a 6 row matrix %//the reshape picks the elements from the 1st col, 1st row and start moving downward in the row and so on %//therefore each time it will meet same element as it moves down the row and fills our first image tempT = (reshape(repmat(vt, 2*3,1), 2, 3, length(vt))); size(tempT) ans = 2 3 4

Advertisements

hi i am doing my final year project entitled webcam based 3D object recognition..i was wondering if u could help me out with the codes to do this.i need to graduate and start supporting my fly asap..thank you

thinesh.sinnathamby@yahoo.com

3D object detection is quite open description, narrow it down to what kind of objects you want to recognize. As for the code, look into OpenCv, there you can directly access the stream coming from webcam and also basic object recognition routines also.