Re: Алгоритм обработки изображений Equalize.
От: FLUID Украина http://yuriy-okhmat.blogspot.com/
Дата: 22.12.05 10:25
Оценка: 2 (1)
Попробуй вот это:


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

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

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

            return testImg;
        }
Мы не владеем тем, чего мы не понимаем....
Алгоритм обработки изображений Equalize.
От: Alexey_79  
Дата: 22.12.05 09:39
Оценка:
Привет All.

Мне необходимо реализовать алгоритм применение Equalize для имеджей на C#,
но поиски по инету не дали никаких результатов.
Please, если кто нибудь работал с фильтрами для обработи имеджей или имеет
инфу по данной теме дайте ссылку или описание.

С уважением
Alexey.
Re: Алгоритм обработки изображений Equalize.
От: FLUID Украина http://yuriy-okhmat.blogspot.com/
Дата: 22.12.05 10:29
Оценка:
Еще могу посоветовать прочитать эту статью: http://codeproject.com/cs/media/csharpgraphicfilters11.asp
Мы не владеем тем, чего мы не понимаем....
Re[2]: Алгоритм обработки изображений Equalize.
От: Alexey_79  
Дата: 22.12.05 11:09
Оценка:
Здравствуйте, FLUID, Вы писали:

Огромное спасибо.

FLU>Еще могу посоветовать прочитать эту статью: http://codeproject.com/cs/media/csharpgraphicfilters11.asp
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
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>>
Re[3]: Алгоритм обработки изображений Equalize.
От: FLUID Украина http://yuriy-okhmat.blogspot.com/
Дата: 22.12.05 12:02
Оценка:
Всегда рад...
Мы не владеем тем, чего мы не понимаем....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.