Click here to Skip to main content
15,917,329 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Can someone please tell me how to make a for loop using GPU EMGU c #

C#
unsafe
           {
               byte* p = (byte*)(void*)Scan0;
               byte* pSrc = (byte*)(void*)SrcScan0;

               int nOffset = stride - b.Width * 3;
               int nWidth = b.Width - 2;
               int nHeight = b.Height - 2;

               int nPixel;

               for (int y = 0; y < nHeight; ++y)
               {
                   for (int x = 0; x < nWidth; ++x)
                   {

                       nPixel = ((((pSrc[2] * m.TopLeft) + (pSrc[5] * m.TopMid) + (pSrc[8] * m.TopRight) +
                           (pSrc[2 + stride] * m.MidLeft) + (pSrc[5 + stride] * m.Pixel) + (pSrc[8 + stride] * m.MidRight) +
                           (pSrc[2 + stride2] * m.BottomLeft) + (pSrc[5 + stride2] * m.BottomMid) + (pSrc[8 + stride2] * m.BottomRight)) / m.Factor) + m.Offset);

                       if (nPixel < 33) nPixel = 0;     //if (nPixel < 0) nPixel = 0;
                       if (nPixel > 34) nPixel = 255;  //if (nPixel > 255) nPixel = 255;

                       p[5 + stride] = (byte)nPixel;

                       nPixel = ((((pSrc[1] * m.TopLeft) + (pSrc[4] * m.TopMid) + (pSrc[7] * m.TopRight) +
                           (pSrc[1 + stride] * m.MidLeft) + (pSrc[4 + stride] * m.Pixel) + (pSrc[7 + stride] * m.MidRight) +
                           (pSrc[1 + stride2] * m.BottomLeft) + (pSrc[4 + stride2] * m.BottomMid) + (pSrc[7 + stride2] * m.BottomRight)) / m.Factor) + m.Offset);


                       if (nPixel < 33) nPixel = 0;
                       if (nPixel > 34) nPixel = 255;

                       p[4 + stride] = (byte)nPixel;

                       nPixel = ((((pSrc[0] * m.TopLeft) + (pSrc[3] * m.TopMid) + (pSrc[6] * m.TopRight) +
                           (pSrc[0 + stride] * m.MidLeft) + (pSrc[3 + stride] * m.Pixel) + (pSrc[6 + stride] * m.MidRight) +
                           (pSrc[0 + stride2] * m.BottomLeft) + (pSrc[3 + stride2] * m.BottomMid) + (pSrc[6 + stride2] * m.BottomRight)) / m.Factor) + m.Offset);

                       if (nPixel < 33) nPixel = 0;
                       if (nPixel > 34) nPixel = 255;

                       p[3 + stride] = (byte)nPixel;

                       p += 3;
                       pSrc += 3;



                   }
                   p += nOffset;
                   pSrc += nOffset;

               }




           }
Posted
Updated 20-Mar-14 23:49pm
v3
Comments
Richard MacCutchan 21-Mar-14 5:31am    
What exactly is the problem?
caoc7 21-Mar-14 5:44am    
need to convert a for loop C# to for loop Emgu.CV.GPU C#

I need to accelerate the processing speed of an image

and the for loop, I run mathematical calculations of multiplication, addition and division

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900