Re: Bitmap data extraction (matrix of matrix)

*To*: mathgroup at smc.vnet.net*Subject*: [mg76459] Re: Bitmap data extraction (matrix of matrix)*From*: Szabolcs <szhorvat at gmail.com>*Date*: Wed, 23 May 2007 05:00:20 -0400 (EDT)*Organization*: University of Bergen*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. One possible solution is to "shift" the levels of the 3D structure using Transpose, so you get a list of the three channels. channels = Transpose[image, {2, 3, 1}]; red is channels[[1]], green is channels[[2]], blue is channels[[3]] Szabolcs