Ejemplo n.º 1
0
/* this function takes in the UArray_T of the pixels, and outputs the 
   Y, Pb, Pr representation
*/
CVC *rgb_pixels_to_CVC(UArray_T block, int denominator)
{

        int num_pixels = UArray_length(block);
        float avg_Pb = 0.0;
        float avg_Pr = 0.0;

        Pnm_rgb cur_pix;
        Pnm_rgb_float cur_pix_float;

        CVC *YPbPr = malloc(sizeof(struct CVC));
        assert(YPbPr);

        YPbPr->Y = malloc(sizeof(Lum_vals) * num_pixels);
        assert(YPbPr->Y);

        YPbPr->num_vals = num_pixels;

        for (int i = 0; i < num_pixels; i++) {

                cur_pix = (Pnm_rgb)UArray_at(block, i);
                cur_pix_float = normalize_pixel(cur_pix, denominator);

                YPbPr->Y[i] = get_Y(cur_pix_float);

                avg_Pb += get_Pb(cur_pix_float);
                avg_Pr += get_Pr(cur_pix_float);
                free(cur_pix_float);
        }

        YPbPr->avg_Pb = avg_Pb / (float)num_pixels;
        YPbPr->avg_Pr = avg_Pr / (float)num_pixels;

        return YPbPr;
}
Ejemplo n.º 2
0
void sync_const() {
	String s;
	Form2->Edit1->Text = get_nb();
	Form2->Edit2->Text = get_k();
	Form2->Edit3->Text = make_name(get_Pb());
	Form2->Edit4->Text = make_name(get_E());
	Form2->Edit5->Text = make_name(get_G());
}