C Programming
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me

The Shed is going Social! Join us on FaceBook and Twitter and chime in on the conversation.

Go Back   Dev Shed ForumsProgramming LanguagesC Programming

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old February 20th, 2013, 02:08 AM
defunktlemon defunktlemon is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Dec 2012
Posts: 16 defunktlemon User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 2 h 23 m 8 sec
Reputation Power: 0
C# buttons not working

Hi.
I have a code which should allow for images to open in the form in c# but buttons 3 and 5 aren't working for some reason and I can't find the problem. The code executes ok, but when I press the buttons I get no response. The other 3 buttons, load image / load image / button 4, are all working correctly.
I have attached an image with the designer form on to show the layout. If anyone can advise me on what the problem is I would be very thankful.

Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing.Imaging;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace imageAlign
{

    public partial class IdentifySleeper : Form
    {
        Bitmap newImage1, newImage2, test;
        public static Bitmap Diff(Bitmap src1, Bitmap src2, int x1, int y1, int x2, int y2, int width, int height)
        {
            Bitmap diffBM = new Bitmap(width, height, PixelFormat.Format24bppRgb);

            for (int y = 0; y < height; y++)
            {
                for (int x = 0; x < width; x++)
                {
                    //Get Both Colours at the pixel point
                    Color col1 = src1.GetPixel(x1 + x, y1 + y);
                    Color col2 = src2.GetPixel(x2 + x, y2 + y);

                    //Get the difference RGB
                    int r = 0, g = 0, b = 0;
                    r = Math.Abs(col1.R - col2.R);



                    g = Math.Abs(col1.G - col2.G);
                    b = Math.Abs(col1.B - col2.B);

                    //Invert the difference average
                    int dif = ((r + g + b) / 3);

                    //Create new grayscale rgb colour
                    Color newcol = Color.FromArgb(dif, dif, dif);

                    diffBM.SetPixel(x, y, newcol);

                }
            }

            return diffBM;
        }


        public IdentifySleeper()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            OpenFileDialog ofd1 = new OpenFileDialog();

            if (ofd1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {

                pictureBox1.Image = Image.FromFile(ofd1.FileName);
                pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;

                // Grab the user's image and crop it to produce a sample image
                Bitmap k = (Bitmap)Image.FromFile(ofd1.FileName);
                Rectangle imageSection = new Rectangle(k.Width / 3, 0, k.Width / 3, k.Height);
                Bitmap kCropped = (Bitmap)k.Clone(imageSection, k.PixelFormat);

                // Array for keeping the sums of each row of pixels
                float[] resultArray = new float[kCropped.Height];

                // Populate the array with data from each row of pixels, using the brightness value
                for (int i = 0; i < kCropped.Height; i++)
                {
                    float value = 0;
                    for (int j = 0; j < kCropped.Width; j++)
                    {
                        value += kCropped.GetPixel(j, i).GetBrightness();
                    }
                    resultArray[i] = value;
                }

                // Obtain the maximum and minimum value of the sampled rows.
                float maxValue = 0;
                float minValue = float.MaxValue;
                for (int i = 1; i < resultArray.Length; i++)
                {
                    if (resultArray[i - 1] > maxValue) maxValue = resultArray[i - 1];
                    if (resultArray[i - 1] < minValue) minValue = resultArray[i - 1];

                }

                // Find the median value of each row, and use this to find upper and lower bounds for the image
                float midPoint = maxValue - minValue;
                float upperBound = (midPoint + maxValue) / 2;
                float lowerBound = (midPoint + minValue) / 2;

                int alignmentStart = 0;
                int alignmentFinish = 0;

                // Scan the result array for the start of the first sleeper
                for (int i = 0; i < resultArray.Length; i++)
                {
                    if (resultArray[i] > upperBound)
                    {
                        alignmentStart = i;
                        break;
                    }
                }

                // Scan the array from the place the last loop left off for the end of the sleeper
                for (int i = alignmentStart; i < resultArray.Length; i++)
                {
                    if (resultArray[i] < lowerBound)
                    {
                        alignmentFinish = i;
                        break;
                    }
                }

                // Using the start and end locations, we can now isolate the sleeper itself
                Rectangle alignedImage = new Rectangle(0, alignmentStart, k.Width, alignmentFinish - alignmentStart);

                Bitmap kAligned = (Bitmap)k.Clone(alignedImage, k.PixelFormat);

                Image image_rect = kAligned;


                image_rect.Save("good.jpg");

                // Put the sleeper in a picturebox for the user to see
                pictureBox3.Image = image_rect;
                pictureBox3.SizeMode = PictureBoxSizeMode.Zoom;



                // Get rid of unused images
                k.Dispose();
                kCropped.Dispose();
            }
        }




        private void IdentifySleeper_Load(object sender, EventArgs e)
        {



        }

        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd2 = new OpenFileDialog();

            if (ofd2.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {

                pictureBox4.Image = Image.FromFile(ofd2.FileName);
                pictureBox4.SizeMode = PictureBoxSizeMode.Zoom;

                // Grab the user's image and crop it to produce a sample image
                Bitmap k = (Bitmap)Image.FromFile(ofd2.FileName);
                Rectangle imageSection = new Rectangle(k.Width / 3, 0, k.Width / 3, k.Height);
                Bitmap kCropped = (Bitmap)k.Clone(imageSection, k.PixelFormat);

                // Array for keeping the sums of each row of pixels
                float[] resultArray = new float[kCropped.Height];

                // Populate the array with data from each row of pixels, using the brightness value
                for (int i = 0; i < kCropped.Height; i++)
                {
                    float value = 0;
                    for (int j = 0; j < kCropped.Width; j++)
                    {
                        value += kCropped.GetPixel(j, i).GetBrightness();
                    }
                    resultArray[i] = value;
                }

                // Obtain the maximum and minimum value of the sampled rows.
                float maxValue = 0;
                float minValue = float.MaxValue;
                for (int i = 1; i < resultArray.Length; i++)
                {
                    if (resultArray[i - 1] > maxValue) maxValue = resultArray[i - 1];
                    if (resultArray[i - 1] < minValue) minValue = resultArray[i - 1];

                }

                // Find the median value of each row, and use this to find upper and lower bounds for the image
                float midPoint = maxValue - minValue;
                float upperBound = (midPoint + maxValue) / 2;
                float lowerBound = (midPoint + minValue) / 2;

                int alignmentStart = 0;
                int alignmentFinish = 0;

                // Scan the result array for the start of the first sleeper
                for (int i = 0; i < resultArray.Length; i++)
                {
                    if (resultArray[i] > upperBound)
                    {
                        alignmentStart = i;
                        break;
                    }
                }

                // Scan the array from the place the last loop left off for the end of the sleeper
                for (int i = alignmentStart; i < resultArray.Length; i++)
                {
                    if (resultArray[i] < lowerBound)
                    {
                        alignmentFinish = i;
                        break;
                    }
                }

                // Using the start and end locations, we can now isolate the sleeper itself
                Rectangle alignedImage = new Rectangle(0, alignmentStart, k.Width, alignmentFinish - alignmentStart);

                Bitmap kAligned = (Bitmap)k.Clone(alignedImage, k.PixelFormat);

                Image image_rect2 = kAligned;

                image_rect2.Save("bad.jpg");

                // Put the sleeper in a picturebox for the user to see
                pictureBox2.Image = image_rect2;
                pictureBox2.SizeMode = PictureBoxSizeMode.Zoom;



                // Get rid of unused images
                k.Dispose();
                kCropped.Dispose();
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "JPEG IMAGES|*.jpg";
            openFileDialog1.InitialDirectory = "C:\\Users\\jason\\Documents\\IProject\\code\\imageAlign\\imageAlign\\bin\\Debug";
            openFileDialog1.Title = "Open Image";
            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                // textBox1.Text = openFileDialog1.FileName;
                newImage1 = (Bitmap)(System.Drawing.Image.FromFile(openFileDialog1.FileName));
                pictureBox5.Width = newImage1.Width;
                pictureBox5.Height = newImage1.Height;
                pictureBox5.Image = newImage1;
                //pictureBox6.Location = new System.Drawing.Point(newImage1.Width + 40, pictureBox6.Location.Y);
            }
            //else
            //{
            //    textBox1.Text = "select file please";
            //}
            //}
        }

        //  private void textBox2_MouseHover(object sender, EventArgs e)
        //{

        //}


        private void button4_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "JPEG IMAGES|*.jpg";
            openFileDialog1.InitialDirectory = "C:\\Users\\jason\\Documents\\IProject\\code\\imageAlign\\imageAlign\\bin\\Debug";
            openFileDialog1.Title = "Open Image";
            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                // textBox2.Text = openFileDialog1.FileName;
                newImage2 = (Bitmap)(System.Drawing.Image.FromFile(openFileDialog1.FileName));
                pictureBox6.Width = newImage2.Width;
                pictureBox6.Height = newImage2.Height;
                pictureBox6.Image = newImage2;
            }
            //else
            //{
            //    textBox2.Text = "select file please";
            //}
            //}
        }


        private void button5_Click(object sender, EventArgs e)
        {
            test = Diff(newImage1, newImage2, 0, 0, 0, 0, newImage1.Width, newImage1.Height);
            pictureBox7.Width = test.Width;
            pictureBox7.Height = test.Height;
            pictureBox7.Image = test;
            //pictureBox7.Location = new System.Drawing.Point(newImage1.Width + newImage2.Width + 80, pictureBox7.Location.Y);
        }
    }
}



Reply With Quote
  #2  
Old February 20th, 2013, 03:47 AM
defunktlemon defunktlemon is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Dec 2012
Posts: 16 defunktlemon User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 2 h 23 m 8 sec
Reputation Power: 0
have found solution

the problem was on click-events

Reply With Quote
Reply

Viewing: Dev Shed ForumsProgramming LanguagesC Programming > C# buttons not working

Developer Shed Advertisers and Affiliates



Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump

Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 


Powered by: vBulletin Version 3.0.5
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.

© 2003-2013 by Developer Shed. All rights reserved. DS Cluster - Follow our Sitemap