Re: Bitmap data extraction (matrix of matrix)
- To: mathgroup at smc.vnet.net
- Subject: [mg76481] Re: Bitmap data extraction (matrix of matrix)
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Wed, 23 May 2007 05:11:44 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <f2u51n$k09$1@smc.vnet.net>
mkorneck at nd.edu wrote: > Hello, > > This is most likely a simple question for those who use Mathematica on > a semi-regular basis, but ... > > I have a 512x512 matrix composed of 1x3 matrix elements, and want to > create a 512x512 matrix composed of a single value in the original 1x3 > elements. > > That doesn't look very well defined, so please let me explain further > in the hopes of clarifying what I am after. > > It's a bitmap image file (512x512) and I want to extract a part of the > "raw" data for further processing. The raw data in the original file > consists of values for the red, green and blue (RGB). I would like to > create a matrix composed of only the *red* values across the 512x512 > array. > > As a simplified example .... > > Given RGB = {{1,0,1},{2,3,2},{4,6,4},{3,2,1}} > {{9,1,3},{3,2,1},{4,3,3},{5,3,2}} > > > I would like to end up with R = {1,2,4,3} > {9,3,4,5} > > Thank you for your time, > > Mike K. Hi Mike, You can use Part (or Take), as in the following code: `In[1]:= img = {{{1, 0, 1}, {2, 3, 2}, {4, 6, 4}, {3, 2, 1}}, {{9, 1, 3}, {3, 2, 1}, {4, 3, 3}, {5, 3, 2}}}; redpts = img[[All,All,1]] greenpts = img[[All,All,2]] bluepts = img[[All,All,3]] Out[2]= {{1, 2, 4, 3}, {9, 3, 4, 5}} Out[3]= {{0, 3, 6, 2}, {1, 2, 3, 3}} Out[4]= {{1, 2, 4, 1}, {3, 1, 3, 2}} Cheers, Jean-Marc