Re[2]: Алгоритм обработки изображений Equalize.
От: Alexey_79  
Дата: 22.12.05 11:37
Оценка:
Здравствуйте, FLUID, Вы писали:

Меня берет сомнение по поводу правильности работы алгоритма.
Если это не так и алгоритм правильный убедите меня.
nTreshold — как его правильно использовать.

С уважением
Alexey

FLU>Попробуй вот это:



FLU>
FLU>public Image EqualizeImage(Bitmap bmp, int nTreshold)
FLU>        {
FLU>            BitmapData bmpData = bmp.LockBits(new Rectangle(0,0,
FLU>                bmp.Width,bmp.Height),ImageLockMode.ReadWrite,
FLU>                PixelFormat.Format24bppRgb);
FLU>            int stride = bmpData.Stride;
FLU>            System.IntPtr Scan0 = bmpData.Scan0;

FLU>            try
FLU>            {
FLU>                unsafe
FLU>                {
FLU>                    byte *p = (byte *)(void *)Scan0;
FLU>                    int nOffset = stride - bmp.Width*3;
FLU>                    int nWidth = bmp.Width*3;
FLU>                    for(int y = 0; y < bmp.Height; ++y)
FLU>                    {
FLU>                        for(int x = 0; x < nWidth; ++x)
FLU>                        {
FLU>                            if(p[0] >= nTreshold)
FLU>                                p[0] = 255;
FLU>                            if(p[0] < nTreshold)
FLU>                                p[0] = 0;
FLU>                            ++p;
FLU>                        }
FLU>                        p += nOffset;
FLU>                    }
FLU>                }
                
FLU>            }
FLU>            catch(Exception e)
FLU>            {
FLU>                this._strErrorString = e.Message;

FLU>            }
FLU>            bmp.UnlockBits(bmpData);
FLU>            Image testImg = Image.FromHbitmap(bmp.GetHbitmap());

FLU>            return testImg;
FLU>        }
FLU>
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.