Next time you snap a picture, you realize you are capturing millions of pixels into a buffer. The buffer data is read and converted into JPEG in real time. Each pixel in that buffer is an unsigned int...


Next time you snap a picture,  you realize you are capturing millions of pixels into a buffer.  The buffer data is read and converted into JPEG in real time.  Each pixel in that buffer is  an unsigned int  (four bytes ): Alpha, Blue, Green, and Red.  Let us ignore alpha for now.  As you know, a unsigned byte can have a value 0 to 255.  In remote sensing jargons,  it is called blue channel, green channel, and red channel.  Each channel  provides valuable information such as, say farm lands, forest fire, drought, landscape,  diseases ,



If a pixel has a value (say in hex) =0x00a1b1c1 ,  then 0xc1 is the red pixel, 0xb1 is the green pixel, 0xa1 is the blue and 00 is the alpha.


#define RED 1


#define GREEN 2


#define BLUE 3



then, develop a function



void  calculateSum ( unsigned int *ptr , int count ,  unsigned char channel ,  unsigned int *sum,  float *average )


{


 *sum = 0;


    if (channel == RED )


      calculate sum and average for red channel


   else


    if (channel == GREEN )


      calculate sum and average for green channel


    if (channel == BLUE )


      calculate sum and average for blue channel



}



main ( )


{



sum = 0;


average = 0;


calculateSum ( buffer, 16 ,  RED,  &sum,  &average )



sum = 0;


average = 0;


calculateSum ( buffer, 16 ,  GREEN,  &sum,  &average )



sum = 0;


average = 0;


calculateSum ( buffer, 16 ,  BLUE,  &sum,  &average )



Print all values


You can reuse the code you did previous assignment to calculate the red, green and blue values



}



Jun 11, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here