Vraag : krijgende en plaatsende pixelgegevens voor een de bibliotheek acces schending van het 3 kanalen RGB beeld?

Hallo, heb ik een bibliotheek van het Beeld die grayscale en rgb beeld heeft.

I heeft code gedaan op het grayscalebeeld te lezen en te schrijven en de vraag naar deze functie loopt goed maar heb ik jammer genoeg een kwestie voor de functie setpixel op het rgb beeld.  

I denkt het probleem uit een omzetting van dubbele aan niet ondertekende long
because komt ik een LUT gebruik (llok omhoog lijst) die een dubbel in plaats van lang terugkeert en dan om het in de setpixelfunctie over te gaan misschien ik een ltoa () functie moet gebruiken alvorens het tot setpixel van het rgb beeld over te gaan zo hoe dat?

Here onder de prototypen van beide functies:

class CImageY_Int
{
public:
// de ycoördinaat vanaf bovenkant naar botom
virtueel niet ondertekend klusje get_pixel (int. x, int. y) =0 gaat;

//set het pixel RGB met klusjes value
virtuele nietige set_pixel (int. x, int. y, niet ondertekend pxl_char klusje) =0;


}

class CImageRGB_Int
{
public:
// de xcoördinaat van links naar rechts
// gaat de ycoördinaat vanaf bovenkant naar botom
virtuele niet ondertekende lange get_pixel (int. x, int. y) =0 gaat;

//set pixle RGB met lange value
virtuele nietige set_pixel (int. x, int. y, niet ondertekende lange pxl_lng) =0;


}

Thank you


" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
//the:

nietige pre_process_y (CImageY_Int* CImgY, double* lut_transform, int. param, CImageY_Int* CImgY_InOut)
{
	int. w=CImgY->get_img_width ();
	int. h=CImgY->get_img_height ();
	int. i =0;
	int. j =0;
	niet ondertekend grijs klusje;

	// leidt tot een cimagebuffer
	niet ondertekend klusje *cimageDataPointer;
	cimageDataPointer = CImgY->get_img_data ();

	// leidt tot een cimagebuffer
	niet ondertekend klusje *cimageDataPointer_inout;
	cimageDataPointer_inout = CImgY_InOut->get_img_data ();

	//copying van CImages
	voor (niet ondertekend int. p=0; pget_img_height (); p++)
	{
		// geheugenexemplaar 
		memcpy (cimageDataPointer_inout, cimageDataPointer, CImgY->get_img_width () *1); 
		// cimageDataPointer sprong aan volgende lijn 
		cimageDataPointer = cimageDataPointer + CImgY->get_img_width () *1; 
		// cvImageDataPointer sprong aan volgende lijn
		cimageDataPointer_inout = cimageDataPointer_inout+ (CImgY_InOut->get_img_width () *1);
	}

  voor (j=0; jget_pixel (I, j);
		CImgY_InOut->set_pixel (I, j, lut_transform [grijs]);

	  }
	}

}



//the rgb functie:

pre_process_rgb (CImageRGB_Int* CImgRGB, double* lut_transform, int. param, CImageRGB_Int* CImgRGB_InOut)
{
	int. nb_channel =3;
	int. w=CImgRGB->get_img_width ();
	int. h=CImgRGB->get_img_height ();
	int. i =0;
	int. j =0;
	int. k =0;
	niet ondertekende lange kleur;

	// leidt tot een cimagebuffer
	niet ondertekend klusje *cimageDataPointer;
	cimageDataPointer = CImgRGB->get_img_data ();

	// leidt tot een cimagebuffer
	niet ondertekend klusje *cimageDataPointer_inout;
	cimageDataPointer_inout = CImgRGB_InOut->get_img_data ();

	//copying van CImage aan het beeld van cv
	voor (niet ondertekend int. p=0; pget_img_height (); p++)
	{
		// geheugenexemplaar 
		memcpy (cimageDataPointer_inout, cimageDataPointer, CImgRGB->get_img_width () *nb_channel); 
		// cimageDataPointer sprong aan volgende lijn 
		cimageDataPointer = cimageDataPointer + CImgRGB->get_img_width () *nb_channel; 
		// cvImageDataPointer sprong aan volgende lijn
		cimageDataPointer_inout = cimageDataPointer_inout+ (CImgRGB_InOut->get_img_width () *nb_channel); //+nb_channel?
	}

  voor (j=0; jget_pixel (I, j);

			//pCImgRGB- >set_pixel (0, 0, 0x080706);
		 	CImgRGB_InOut->set_pixel (I, j, lut_transform [kleur]); //ERROR DE SCHENDING VAN DE TOEGANG 

	  }
	}


}

Antwoord : krijgende en plaatsende pixelgegevens voor een de bibliotheek acces schending van het 3 kanalen RGB beeld?

O.k. Ik begin om te begrijpen waar u wilt gaan.

Is dit wat u gehad in mening?
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
  voor (j=0; jget_pixel (I, j);

			niet ondertekend klusje color_r = kleur & 0x000000FF;
			niet ondertekend klusje color_g = (kleur & 0x0000FF00) >> 8;
			niet ondertekend klusje color_b = (kleur & 0x00FF0000) >> 16;
			niet ondertekende klusjescolor_a = (kleur & 0xFF000000) >> 24;

			niet ondertekende lang color2 = (color_a <>set_pixel (0, 0, 0x080706);
		 	CImgRGB_InOut->set_pixel (I, j, color2);

	  }
	}
Andere oplossingen  
 
programming4us programming4us