예제 #1
0
 private void pictureBox2_Click(object sender, EventArgs e)
 {
     if (openFileDialog2.ShowDialog() == DialogResult.OK)
     {
         pictureBox2.Image = Bitmap.FromFile(openFileDialog2.FileName);
         Bitmap bmp = (Bitmap)pictureBox2.Image.Clone();
         imgData2.readImage(bmp);
         pictureBox2.Image = imgData2.drawImage("RGB");
         GC.Collect();
     }
 }
예제 #2
0
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Image = Bitmap.FromFile(openFileDialog1.FileName);

                Bitmap bmp = (Bitmap)pictureBox1.Image.Clone();
                imgData1.readImage(bmp);
                imgData2.readImage(bmp);
                pictureBox1.Image = imgData1.drawImage("RGB");
                imgData1.x0       = imgData1.img.GetLength(0) / 2;
                imgData1.y0       = imgData1.img.GetLength(1) / 2;

                GC.Collect();
            }
        }
예제 #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Image = Bitmap.FromFile(openFileDialog1.FileName);
            }

            Bitmap bmp = (Bitmap)pictureBox1.Image.Clone();

            imgData.readImage(bmp);
            pictureBox2.Image = imgData.drawImage("RGB");
            imgData.histOriginal.drawGraph(chart1, "RGB");
            imgData.histEdited.drawGraph(chart2, "RGB");
        }
예제 #4
0
        private void applyTransition(int s)
        {
            for (int i = 0; i < imgData1.img.GetLength(0); i++)
            {
                for (int j = 0; j < imgData1.img.GetLength(1); j++)
                {
                    imgData3.img[i, j] = new PixelClassRGB();

                    if (radioButton1.Checked)
                    {
                        imgData3.img[i, j].R = Convert.ToByte(((double)s / 100) * imgData2.img[i, j].R + (1 - (double)s / 100) * imgData1.img[i, j].R);
                        imgData3.img[i, j].G = Convert.ToByte(((double)s / 100) * imgData2.img[i, j].G + (1 - (double)s / 100) * imgData1.img[i, j].G);
                        imgData3.img[i, j].B = Convert.ToByte(((double)s / 100) * imgData2.img[i, j].B + (1 - (double)s / 100) * imgData1.img[i, j].B);
                    }
                    else if (radioButton2.Checked)
                    {
                        if (i < imgData1.img.GetLength(0) * s / 100)
                        {
                            imgData3.img[i, j].R = imgData2.img[i, j].R;
                            imgData3.img[i, j].G = imgData2.img[i, j].G;
                            imgData3.img[i, j].B = imgData2.img[i, j].B;
                        }
                        else
                        {
                            imgData3.img[i, j].R = imgData1.img[i, j].R;
                            imgData3.img[i, j].G = imgData1.img[i, j].G;
                            imgData3.img[i, j].B = imgData1.img[i, j].B;
                        }
                    }
                    else if (radioButton3.Checked)
                    {
                        if (j < imgData1.img.GetLength(1) * s / 100)
                        {
                            imgData3.img[i, j].R = imgData2.img[i, j].R;
                            imgData3.img[i, j].G = imgData2.img[i, j].G;
                            imgData3.img[i, j].B = imgData2.img[i, j].B;
                        }
                        else
                        {
                            imgData3.img[i, j].R = imgData1.img[i, j].R;
                            imgData3.img[i, j].G = imgData1.img[i, j].G;
                            imgData3.img[i, j].B = imgData1.img[i, j].B;
                        }
                    }
                    else if (radioButton4.Checked)
                    {
                        if (j < (imgData1.img.GetLength(1) / 2 - (imgData1.img.GetLength(1) * s / 200)) ||
                            j > (imgData1.img.GetLength(1) / 2 + (imgData1.img.GetLength(1) * s / 200)))
                        {
                            imgData3.img[i, j].R = imgData2.img[i, j].R;
                            imgData3.img[i, j].G = imgData2.img[i, j].G;
                            imgData3.img[i, j].B = imgData2.img[i, j].B;
                        }
                        else
                        {
                            imgData3.img[i, j].R = imgData1.img[i, j].R;
                            imgData3.img[i, j].G = imgData1.img[i, j].G;
                            imgData3.img[i, j].B = imgData1.img[i, j].B;
                        }
                    }
                    else if (radioButton5.Checked)
                    {
                        if (i < (imgData1.img.GetLength(0) / 2 - (imgData1.img.GetLength(0) * s / 200)) ||
                            i > (imgData1.img.GetLength(0) / 2 + (imgData1.img.GetLength(0) * s / 200)))
                        {
                            imgData3.img[i, j].R = imgData2.img[i, j].R;
                            imgData3.img[i, j].G = imgData2.img[i, j].G;
                            imgData3.img[i, j].B = imgData2.img[i, j].B;
                        }
                        else
                        {
                            imgData3.img[i, j].R = imgData1.img[i, j].R;
                            imgData3.img[i, j].G = imgData1.img[i, j].G;
                            imgData3.img[i, j].B = imgData1.img[i, j].B;
                        }
                    }
                    else if (radioButton6.Checked)
                    {
                        if (
                            (i < (imgData1.img.GetLength(0) / 2 - (imgData1.img.GetLength(0) * s / 200)) ||
                             i > (imgData1.img.GetLength(0) / 2 + (imgData1.img.GetLength(0) * s / 200))) &&
                            (j < (imgData1.img.GetLength(1) / 2 - (imgData1.img.GetLength(1) * s / 200)) ||
                             j > (imgData1.img.GetLength(1) / 2 + (imgData1.img.GetLength(1) * s / 200))))
                        {
                            imgData3.img[i, j].R = imgData2.img[i, j].R;
                            imgData3.img[i, j].G = imgData2.img[i, j].G;
                            imgData3.img[i, j].B = imgData2.img[i, j].B;
                        }
                        else
                        {
                            imgData3.img[i, j].R = imgData1.img[i, j].R;
                            imgData3.img[i, j].G = imgData1.img[i, j].G;
                            imgData3.img[i, j].B = imgData1.img[i, j].B;
                        }
                    }
                    else if (radioButton7.Checked)
                    {
                        if (Math.Pow(j, 2) + Math.Pow(i, 2) > Math.Pow(imgData1.img.GetLength(0) * s / 100 + imgData1.img.GetLength(1) * s / 100, 2))
                        {
                            imgData3.img[i, j].R = imgData2.img[i, j].R;
                            imgData3.img[i, j].G = imgData2.img[i, j].G;
                            imgData3.img[i, j].B = imgData2.img[i, j].B;
                        }
                        else
                        {
                            imgData3.img[i, j].R = imgData1.img[i, j].R;
                            imgData3.img[i, j].G = imgData1.img[i, j].G;
                            imgData3.img[i, j].B = imgData1.img[i, j].B;
                        }
                    }
                    else if (radioButton8.Checked)
                    {
                        if (j > Math.Pow(s / 100.0, 5) * imgData1.img.GetLength(1) && i > Math.Pow(s / 100.0, 5) * imgData1.img.GetLength(0))
                        {
                            imgData3.img[i, j].R = imgData2.img[i, j].R;
                            imgData3.img[i, j].G = imgData2.img[i, j].G;
                            imgData3.img[i, j].B = imgData2.img[i, j].B;
                        }
                        else
                        {
                            imgData3.img[i, j].R = imgData1.img[i, j].R;
                            imgData3.img[i, j].G = imgData1.img[i, j].G;
                            imgData3.img[i, j].B = imgData1.img[i, j].B;
                        }
                    }
                }
            }
            pictureBox3.Image = imgData3.drawImage("transition");
        }