A jedeme dál ...
Človíčkův Weblog aneb Michal Horák bloguje

Histogram obrázku, C# .NET

 | 3.11.2007

Naposledy jsme zvětšovali a zmenšovali obrázek, nyní si spočítáme jeho histogram. Obrázek máme uložený v dvojrozměrném poli double[,] BitmapArray, zde je uložena jeho černobílá varianta, aby se nám vše lépe počítalo. Histogram spočítáme následujícím způsobem:

        private int[] SpocitejHistogram()
        {
            int vyska = this.BitmapArray.GetLength(1);
            int sirka = this.BitmapArray.GetLength(0);
            int[] histogram = new int[256];
            int N = sirka * vyska;
            for (int y = 0; y < vyska; y++)
            {
                for (int x = 0; x < sirka; x++)
                {
                    histogram[(int)this.BitmapArray[x, y]] = histogram[(int)this.BitmapArray[x, y]] + 1;
                }
            }

            return histogram;

        }

Tento histogram můžeme následně uložit jako bitmapu:

        private Bitmap VykresliHistogram(double[] histogram) {
            
            double max = 0;
            Point[] body=new Point[256];
            Bitmap bitmap = new Bitmap(256, 100);
            Graphics g = Graphics.FromImage(bitmap);
            g.FillRectangle(Brushes.White, 0, 0, 256, 100);
            Pen pen = new Pen(Color.Black, 1);
            for (int i = 0; i < histogram.Length; i++) {
                if (histogram[i] > max) {
                    max = histogram[i];
                }
            }
            for (int j = 0; j < histogram.Length; j++)
            {
                g.DrawLine(pen, new Point(j, 100), new Point(j, (100-(int)(((double)histogram[j]/(double)max)*100))));
            }

            
            g.DrawLines(pen, body);
            g.Dispose();
            return bitmap;

        }

Kterou lze následně vykreslit.

Příspěvek vyšel v Sobotu 3.11.2007 15:22 v kategorii Programování a byl 21482x zobrazen. Pokud se vám líbil můžete si jej zalinkovat: Linkuj.cz, Del.icio.us

Komentáře


Přidejte svůj komentář

Přidej komentář

Tipy na přečtení

Kategorie

Vyhledávání

Odkazy

Nejčtenější příspěvky za poslední týden

Poslední příspěvky

"A jedeme dál ..." Človíčkův Weblog aneb Michal Horák bloguje. (c) Michal Horák (Človíček webdesign) 2006