Cuestión : ¿consiguiendo y fijando los datos del pixel para una violación de 3 de los canales del RGB de la imagen acces de la biblioteca?

Hola, tengo una biblioteca de la imagen que tenga grayscale e imagen del rgb. el

I ha hecho código para leer y escribir en la imagen del grayscale y la llamada para esta función funciona bien pero desafortunadamente tengo una edición para el setpixel de la función en la imagen del rgb.  ¿el

I piensa que el problema viene de una conversión de doble al long
because que estoy utilizando un LUT (llok encima de la tabla) que vuelva un doble en vez de de largo y entonces pasárleme en la función del setpixel debe utilizar quizá una función del ltoa () antes de pasarla al setpixel de la imagen del rgb tan cómo hacer eso?

Here debajo de los prototipos de ambas funciones:

class CImageY_Int
{
public: el
// la coordinada Y va de tapa al get_pixel sin firmar virtual del carbón de leña del botom
(internacional x, internacional y)=0;

//set el pixel RGB con el set_pixel vacío virtual del value
del carbón de leña (internacional x, internacional y, carbón de leña sin firmar pxl_char) =0;

class CImageRGB_Int
{
public del
} del

…: el
// la coordinada X va de izquierda a derecha el
// que la coordinada Y va de tapa al get_pixel largo sin firmar virtual del botom
(internacional x, internacional y)=0;

//set el pixle RGB con el set_pixel vacío virtual largo del value
(internacional x, internacional y, pxl_lng largo sin firmar) =0; you


del

Thank del
del

…} class= > " claro " del
> del " codeSnippet " del class= del
class= " lineNumbers " del
class= del
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:
función notpretty del grayscale de >//the " del class= " de " codeSnippet821729 del id= del
get_img_width de la internacional ();
	h=CImgY->get_img_height de la internacional ();
	internacional i =0;
	internacional j =0;
	gris sin firmar del carbón de leña;

	// crea un almacenador intermediario del cimage
	*cimageDataPointer sin firmar del carbón de leña;
	cimageDataPointer = CImgY->get_img_data ();

	// crea un almacenador intermediario del cimage
	*cimageDataPointer_inout sin firmar del carbón de leña;
	cimageDataPointer_inout = CImgY_InOut->get_img_data ();

	//copying de CImages
	para (internacional sin firmar p=0; pget_img_height (); p++)
	{
		copia de la memoria de // 
		memcpy (cimageDataPointer_inout, cimageDataPointer, CImgY->get_img_width () *1); 
		salto del cimageDataPointer de // a la línea siguiente 
		cimageDataPointer = cimageDataPointer + CImgY->get_img_width () *1; 
		salto del cvImageDataPointer de // a la línea siguiente
		cimageDataPointer_inout = cimageDataPointer_inout+ (CImgY_InOut->get_img_width () *1);
	}

  para (j=0; jget_pixel (i, j);
		CImgY_InOut->set_pixel (i, j, lut_transform [gris]);

	  }
	}

}



función de //the rgb:

pre_process_rgb (CImageRGB_Int* CImgRGB, lut_transform del double*, param de la internacional, CImageRGB_Int* CImgRGB_InOut)
{
	nb_channel =3 de la internacional;
	w=CImgRGB->get_img_width de la internacional ();
	h=CImgRGB->get_img_height de la internacional ();
	internacional i =0;
	internacional j =0;
	internacional k =0;
	color largo sin firmar;

	// crea un almacenador intermediario del cimage
	*cimageDataPointer sin firmar del carbón de leña;
	cimageDataPointer = CImgRGB->get_img_data ();

	// crea un almacenador intermediario del cimage
	*cimageDataPointer_inout sin firmar del carbón de leña;
	cimageDataPointer_inout = CImgRGB_InOut->get_img_data ();

	//copying de CImage a la imagen del CV
	para (internacional sin firmar p=0; pget_img_height (); p++)
	{
		copia de la memoria de // 
		memcpy (cimageDataPointer_inout, cimageDataPointer, *nb_channel de CImgRGB->get_img_width ()); 
		salto del cimageDataPointer de // a la línea siguiente 
		cimageDataPointer = cimageDataPointer + *nb_channel de CImgRGB->get_img_width (); 
		salto del cvImageDataPointer de // a la línea siguiente
		cimageDataPointer_inout = cimageDataPointer_inout+ *nb_channel (de CImgRGB_InOut->get_img_width ()); ¿//+nb_channel?
	}

  para (j=0; jget_pixel (i, j);

			>set_pixel de //pCImgRGB- (0, 0, 0x080706);
		 	CImgRGB_InOut->set_pixel (i, j, lut_transform [color]); VIOLACIÓN DE ACCESO DE //ERROR 

	  }
	}


}
class= del

Respuesta : ¿consiguiendo y fijando los datos del pixel para una violación de 3 de los canales del RGB de la imagen acces de la biblioteca?

Autorización. Estoy comenzando a entender donde usted quiere ir.

¿Es este qué usted tenido en mente?
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
  para (j=0; jget_pixel (i, j);

			color_r = color y 0x000000FF sin firmar del carbón de leña;
			color_g sin firmar del carbón de leña = (color y 0x0000FF00) >> 8;
			color_b sin firmar del carbón de leña = (color y 0x00FF0000) >> 16;
			color_a sin firmar del carbón de leña = (color y 0xFF000000) >> 24;

			largo sin firmar color2 = (set_pixel <>del color_a (0, 0, 0x080706);
		 	CImgRGB_InOut->set_pixel (i, j, color2);

	  }
	}
Otras soluciones  
 
programming4us programming4us