Fråga : få och ställa in PIXELdata för 3 kanaliserar RGB avbildar arkivacceskränkning?

Hi jag har ett avbildaarkiv som har gråton och rgb att avbilda.

I har gjort kodifierar för att läsa, och att skriva på gråtonen avbilda, och appellen för denna fungerar körningar väl, men tyvärr jag har en utfärda för fungerasetpixelen på rgben att avbilda.  funderare för

I problemet kommer från en omvandling från dubblett till den unsigned förmiddagen för long
because I using en LUT (llok bordlägger upp) som går en dubblett tillbaka i stället för long, och därefter att passera den i setpixelen fungera kanske mig måste använda en ltoa () fungerar, innan du passerar den till setpixel av rgben avbilda så hur gör det? nedanför

Here prototyperna av båda fungerar:

class CImageY_Int
{
public:
// y-koordinaten går från bästa till faktisk unsigned rödingget_pixel för botom
(int x, int y) =0;

//set PIXELet RGB med den faktiska utan laga kraft set_pixelen för rödingvalue
(int x, int y, den pxl_char unsigned rödingen) =0;

class CImageRGB_Int
{
public för
} för

…:
// x-koordinaten går från
// som y-koordinaten går från bästa till faktisk unsigned lång get_pixel för botom
(int x, int y) =0;

//set pixlen RGB med den långa faktiska utan laga kraft set_pixelen för value
(int x, int y, unsigned lång pxl_lng) =0; you


för

Thank för
för

…} > för
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:
" codeBody " " gråtonen för >//the för class= " för get_img_width (); int-h=CImgY->get_img_height (); int i =0; int j =0; unsigned rödinggrå färg; // skapar en cimage fungera som buffert unsigned röding*cimageDataPointer; cimageDataPointer = CImgY->get_img_data (); // skapar en cimage fungera som buffert unsigned röding*cimageDataPointer_inout; cimageDataPointer_inout = CImgY_InOut->get_img_data (); //copying från CImages för (unsigned int p=0; pget_img_height (); p++) { det // minnet kopierar memcpy (cimageDataPointer_inout, cimageDataPointer, CImgY->get_img_width () *1); // cimageDataPointerhopp som därefter ska fodras cimageDataPointer = cimageDataPointer + CImgY->get_img_width () *1; // cvImageDataPointerhopp som därefter ska fodras cimageDataPointer_inout = cimageDataPointer_inout+ (CImgY_InOut->get_img_width () *1); } för (j=0; jget_pixel (I, j); CImgY_InOut->set_pixel (I, j, lut_transform [grå färg]); } } } //the rgb fungerar: 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; unsigned långa färgar; // skapar en cimage fungera som buffert unsigned röding*cimageDataPointer; cimageDataPointer = CImgRGB->get_img_data (); // skapar en cimage fungera som buffert unsigned röding*cimageDataPointer_inout; cimageDataPointer_inout = CImgRGB_InOut->get_img_data (); //copying från CImage till CV avbildar för (unsigned int p=0; pget_img_height (); p++) { det // minnet kopierar memcpy (cimageDataPointer_inout, cimageDataPointer, CImgRGB->get_img_width () *nb_channel); // cimageDataPointerhopp som därefter ska fodras cimageDataPointer = cimageDataPointer + CImgRGB->get_img_width () *nb_channel; // cvImageDataPointerhopp som därefter ska fodras cimageDataPointer_inout = cimageDataPointer_inout+ (CImgRGB_InOut->get_img_width () *nb_channel); //+nb_channel? } för (j=0; jget_pixel (I, j); //pCImgRGB- >set_pixel (0, 0, 0x080706); CImgRGB_InOut->set_pixel (I, j, lut_transform [färga],); //ERROR TAR FRAM KRÄNKNING } } }
" klar "

Svar : få och ställa in PIXELdata för 3 kanaliserar RGB avbildar arkivacceskränkning?

Ok. Start för förmiddag I som förstår var du önskar att gå.

Detta vad du has i åtanke?
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
  för (j=0; jget_pixel (I, j);

			unsigned rödingcolor_r = färgar & 0x000000FF;
			unsigned rödingcolor_g = (färga & 0x0000FF00), >> 8;
			unsigned rödingcolor_b = (färga & 0x00FF0000), >> 16;
			unsigned rödingcolor_a = (färga & 0xFF000000), >> 24;

			unsigned långt color2 = (color_a <>set_pixel (0, 0, 0x080706);
		 	CImgRGB_InOut->set_pixel (I, j, color2);

	  }
	}
Andra lösningar  
 
programming4us programming4us