예제 #1
0
        static void Main(string[] args)
        {
            var img = new GlayImage();

            img.Read("A.pgm");
            img.Write("A_p2.pgm");
            img.Write("A_clone.pgm");
            var hist = new Histgram(img);

            hist.GetHistgramImage().Write("A_hist.pgm");
        }
예제 #2
0
        static void Main(string[] args)
        {
            // 2.画像 A,B の反転処理を行い、ヒストグラム分布の変化を確認せよ。

            foreach (var name in new string[] { "A", "B" })
            {
                var img = new GlayImage(name + ".pgm");

                // 階調を反転
                for (var y = 0; y < img.Size.Height; ++y)
                {
                    for (var x = 0; x < img.Size.Width; ++x)
                    {
                        img[x, y] = 255 - img[x, y];
                    }
                }
                img.Write(name + "_rev.pgm");

                var imgHist = GetHistgramImage(img);
                imgHist.Write(name + "_rev_hist.pgm");
            }
        }
예제 #3
0
        static void Main(string[] args)
        {
            // 6.画像CとDのαブレンディング(横方向)を行え。

            // 画像読み込み
            var img1 = new GlayImage("C.pgm");
            var img2 = new GlayImage("D.pgm");

            Debug.Assert(img1.Size == img2.Size);

            // 左が C の画像から始まり、右に進むに連れて徐々に D の画像になるようなアルファブレンド画像を作成
            for (var x = 0; x < img1.Size.Width; ++x)
            {
                var alpha = (double)x / (img1.Size.Width - 1);
                for (var y = 0; y < img1.Size.Height; ++y)
                {
                    img1[x, y] = (int)(img2[x, y] * alpha + img1[x, y] * (1 - alpha));
                }
            }

            // 画像出力
            img1.Write("C_D_alpha.pgm");
        }