in reply to Re^2: multi-dimensional range lookup
in thread multi-dimensional range lookup
... your code will also match for rgb(2,2,4) etc.
I do not believe so. Given,
And assuming for simplicity, 3-bit/color images, the data would be encoded as
my %lookup = { ## 0 1 2 3 4 5 6 7 red => [ 0b00, 0b10, 0b01*, 0b00, 0b00, 0b00, 0b00, 0b00, ], green => [ 0b00, 0b00, 0b10*, 0b01, 0b00, 0b00, 0b00, 0b00, ], blue => [ 0b00, 0b00, 0b00, 0b10, 0b01*, 0b00, 0b00, 0b00, ], };
Anding the 3 bitstrings selected by rgb( 2,2,4 ) (* above) together
0b01 & 0b10 & 0b01 == 00 ==> No hits.
So, for the simple case of looking up one rgb value at a time, there is no overlap.
For the more complex case of locating images that contain either rgb( 1,2,3 ) or rgb( 2,3,4 ), there is the problem that oring all six selected bitstrings together would also select rgb( 1,2,4 ) and rgb( 1,3,4 ) and rgb( 2,2,4 ) etc., but that is different from the problem description, which is more akin to r = 1 or 2 and g = 2 or 3, and b = 3 or 4, for which my code algorithm description would work correctly.
For the case you describe, that of only matching those images that contain either rgb( 1,2,3 ) or rgb( 2,3,4 ), you have to do it in two separate operations. And the individual strings of the first 3 values together and extract the image identities from the result. Then do the second set of three and extract the image identities.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: multi-dimensional range lookup
by Joost (Canon) on May 08, 2007 at 22:13 UTC |