|We don't bite newbies here... much|
How to use a pdl as an index into another pdlby Barrabas (Novice)
|on Apr 10, 2020 at 18:56 UTC||Need Help??|
Barrabas has asked for the wisdom of the Perl Monks concerning the following question:
Oh great and venerable ones...
I am trying to create a PDL color "Cube" array of the counts of each color in an image.
The image is a PDL of dimension(width,height,3) of RGB values:
The color count is a pdl cube of dimension 256,256,256:
I would like to iterate over the pixels in the image, incrementing the element in the $Colors cube indexed by the RGB value of each pixel.
There are many black pixels in the image, so the count at RGB(0,0,0) should be fairly large. Looking through the $Color pdl, it *appears* that colors are being set to 1, but not incremented. IOW, the cube is sprinkled with 1 values where I would expect it to be sprinkled with color counts.
My two questions are:
1) What is my mistake, and
2) Is there a straightforward PDL way to do this? (Ie - thread one PDL as an index into another for incrementing)