Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: DIVIDING AN IMAGE INTO SUB BLOCKS
Replies: 19   Last Post: May 2, 2012 3:02 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Matt J

Posts: 4,976
Registered: 11/28/09
Re: DIVIDING AN IMAGE INTO SUB BLOCKS
Posted: Feb 11, 2012 1:33 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

"sanyukta " <sanyuktachetia01@gmail.com> wrote in message <jh66hs$rnc$1@newscl01ah.mathworks.com>...
> ImageAnalyst <imageanalyst@mailinator.com> wrote in message <0bc34147-dd8c-44bb-ad0a-aacfefac0ebf@g27g2000yqa.googlegroups.com>...
> > On Feb 10, 12:44 pm, "sanyukta " <sanyuktacheti...@gmail.com> wrote:
> > > Thanks..I have used mat2cell function and got a total of p=25 blocks.So each block has q=100x100 elements.Next,I want to concatenate all the elements of the block to give a vector to represent one block resulting in a matrix x=[x1,x2,....xp]of size qxp.How to do?
> >
> > ----------------------------------------------------------------------------------------------
> > If I understand you correctly you want to take one particular block
> > and concatenate all the elements of that block go give a 1D vector.
> > To do that you just do:
> >
> > m = rand(500,500); % Sample data 500x500
> > divisions = [100 100 100 100 100];
> > % Chop up into 100x100 cells.
> > mCell = mat2cell(m, divisions, divisions)
> > % Pull out one particular cell - it will be a 100x100 array.
> > thisBlock = mCell{2,4}; % Or whatever indexes you want.
> > % Concatenate into vector 10000 elements long.
> > columnVector = thisBlock(:);

> Thanks..I used the following code:
> clc;
> clear all;
> close all;
> a=imread('glyoxylase.jpg');
> a1=rgb2gray(a);
> a2=mat2cell(a1,[100 100 100 100 100],[100 100 100 100 100]);
> disp(a2);
>
> I got the results of a2 as-
>
> Columns 1 through 4
>
> [100x100 uint8] [100x100 uint8] [100x100 uint8] [100x100 uint8]
> [100x100 uint8] [100x100 uint8] [100x100 uint8] [100x100 uint8]
> [100x100 uint8] [100x100 uint8] [100x100 uint8] [100x100 uint8]
> [100x100 uint8] [100x100 uint8] [100x100 uint8] [100x100 uint8]
> [100x100 uint8] [100x100 uint8] [100x100 uint8] [100x100 uint8]
>
> Column 5
>
> [100x100 uint8]
> [100x100 uint8]
> [100x100 uint8]
> [100x100 uint8]
> [100x100 uint8]
> Means I got a total of 25 blocks.Next I want to concatenate all the elements of the 25 blocks to get a single vector.

=================

But what we can't understand is how the vector elements are supposed to be ordered. For example, one way you could have obtained a vector is simply to
do a2=a1(:). No need to convert to a cell at all.



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2013. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.