51220

Выделение контурных признаков изображения

Лабораторная работа

Информатика, кибернетика и программирование

Цель работы: Изучить методы выделения контурных признаков изображения и применить полученные знания на практике. Задание: Cоставить программу, выполняющую выделение контурных признаков изображения.

Русский

2014-02-07

287.94 KB

8 чел.

Министерство образования Республики Беларусь

Учреждение образования

Брестский государственный технический университет

Кафедра  ЭВМ и С

Лабораторная работа № 4

«Выделение контурных признаков изображения»

Выполнил:

студент гр. Э-41 ФЭИС

Якубчик А.Н.

Проверил:

Кузьмицкий Н.Н.

Брест 2013

Цель работы: Изучить методы выделения контурных признаков изображения и применить полученные знания на практике.

Задание: Cоставить программу, выполняющую выделение контурных признаков изображения. 

  1.  Необходимые характеристики:
  2.  изображение хранится во внешнем файле;
  3.  программа должна выводить исходное и результирующее изображения;
  4.  возможность выбора уровня порогового ограничения;
  5.  перед выделением контура происходит фильтрация изображения любым фильтром.
  6.  возможность изменения порога при роботе с контурным препаратом.

Тип фильтра: 

  1.  курсовые маски (возможность выбора любой маски: С,Ю,З,В,С-З,С-В,...)

Код программы: 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace COS4

{

   public partial class Form1 : Form

   {

       Bitmap image1 = null;

       Bitmap image_2 = null;

       int width = 0;

       int height = 0;

       public Form1()

       {

           InitializeComponent();

       }

       private void button1_Click(object sender, EventArgs e)

       {

           openFileDialog1.ShowDialog();

           Bitmap image = new Bitmap(openFileDialog1.FileName);

           width = image.Width;

           height = image.Height;

           image1 = image;

           pictureBox1.Image = image;

           pictureBox1.Show();

       }

       private void button2_Click(object sender, EventArgs e)

       {

           Bitmap image2 = new Bitmap(width, height);

           pictureBox1.Image = image2;

           image_2 = image2;

           for (int i = 0; i < height; i++)

           {

               for (int j = 0; j < width; j++)

               {

                   Color c = image1.GetPixel(j, i);

                   Double RED = Convert.ToDouble(c.R * 0.2989);

                   Double GREEN = Convert.ToDouble(c.G * 0.587);

                   Double BLUE = Convert.ToDouble(c.B * 0.114);

                   int GREY = Convert.ToInt32(RED + GREEN + BLUE);

                   image2.SetPixel(j, i, Color.FromArgb(c.R, c.G, c.B));

                   image2.SetPixel(j,i,Color.FromArgb(GREY,GREY,GREY));

               }

           }

           pictureBox1.Refresh();

       }

       private void button3_Click(object sender, EventArgs e)

       {

           string input = textBox1.Text;

           double k = Convert.ToDouble(input);

           Bitmap image3 = new Bitmap(width, height);

           pictureBox2.Image = image3;

           double G = 0;

           int[,] maska = new int[3, 3];

           for (int i = 1; i < height - 1; i++)

           {

               for (int j = 1; j < width - 1; j++)

               {

                   for (int county = 0; county < 3; county++)

                   {

                       for (int countx = 0; countx < 3; countx++)

                       {

                           maska[county, countx] = image_2.GetPixel(j + countx - 1, i + county - 1).R;

                       }

                   }

                   if (radioButton1.Checked == true)

                   {

                       G = (maska[0, 0] + maska[0, 1] + maska[0, 2] + maska[1, 0] - 2 * maska[1, 1] + maska[1, 2] - maska[2, 0] - maska[2, 1] - maska[2, 2]);

                   }

                   if (radioButton2.Checked == true)

                   {

                       G = (maska[2, 0] + maska[2, 1] + maska[2, 2] + maska[1, 0] - 2 * maska[1, 1] + maska[1, 2] - maska[0, 0] - maska[0, 1] - maska[0, 2]);

                   }

                   if (radioButton3.Checked == true)

                   {

                       G = (maska[2, 0] + maska[2, 1] - maska[2, 2] + maska[1, 0] - 2 * maska[1, 1] - maska[1, 2] + maska[0, 0] + maska[0, 1] - maska[0, 2]);

                   }

                   if (radioButton4.Checked == true)

                   {

                       G = (maska[2, 1] - maska[2, 0] + maska[2, 2] - maska[1, 0] - 2 * maska[1, 1] + maska[1, 2] - maska[0, 0] + maska[0, 1] + maska[0, 2]);

                   }

                   if (radioButton5.Checked == true)

                   {

                       G = (maska[0, 0] + maska[0, 1] + maska[0, 2] + maska[1, 0] - 2 * maska[1, 1] - maska[1, 2] + maska[2, 0] - maska[2, 1] - maska[2, 2]);

                   }

                   if (radioButton6.Checked == true)

                   {

                       G = (maska[0, 0] + maska[0, 1] + maska[0, 2] - maska[1, 0] - 2 * maska[1, 1] + maska[1, 2] - maska[2, 0] - maska[2, 1] + maska[2, 2]);

                   }

                   if (radioButton7.Checked == true)

                   {

                       G = (maska[2, 0] + maska[2, 1] + maska[2, 2] + maska[1, 0] - 2 * maska[1, 1] - maska[1, 2] + maska[0, 0] - maska[0, 1] - maska[0, 2]);

                   }

                   if (radioButton8.Checked == true)

                   {

                       G = (maska[2, 1] + maska[2, 0] + maska[2, 2] - maska[1, 0] - 2 * maska[1, 1] + maska[1, 2] - maska[0, 0] - maska[0, 1] + maska[0, 2]);

                   }

                   if (G > k)

                   {

                       image3.SetPixel(j, i, Color.White);

                   }

                   else

                   {

                       image3.SetPixel(j,i,Color.Black);

                   }

               }

           }

           pictureBox2.Show();

       }

   }

}

Пример работы программы:

Вывод: в ходе работы изучили методы выделения контурных признаков изображения.


 

А также другие работы, которые могут Вас заинтересовать

76455. Принципы семейно-правового регулирования 17.66 KB
  Признание брака заключенного только в органах загса. Религиозный обряд брака венчание и фактические брачные отношения не имеют правового значения и не влекут взаимных прав и обязанностей супругов. Добровольность брачного союза предполагает свободное волеизъявление мужчины и женщины которое будущие супруги выражают дважды: при подаче заявления в загс и во время регистрации брака. Для выяснения подлинности свободы волеизъявления регистрация брака производится в присутствии обоих вступающих в брак лиц п.
76456. Действующее семейное законодательство 14.11 KB
  Конституции РФ о защите материнства и детства семьи государством. Отсюда основной целью правового регулирования семейных отношений является укрепление семьи построение семейных отношений на чувствах взаимной любви и уважения взаимопомощи и ответственности перед семьей всех ее членов. Защита семьи осуществляется не только семейноправовыми нормами но и нормами других отраслей права: социального обеспечения трудового жилищного и др. Нормы семейного законодательства призваны также обеспечить беспрепятственное осуществление членами...
76457. Понятие и виды семейных правоотношений 16.67 KB
  Возникновению семейных правоотношений предшествует: издание норм регулирующих данные общественные отношения нормативные предпосылки; наделение субъектов правоспособностью позволяющей им быть носителями прав и обязанностей предусмотренных в правовых нормах правосубъектные предпосылки; наличие соответствующих юридических фактов с которыми нормы связывают возникновение данных правоотношений юридикофактические предпосылки. Семейные правоотношения один из видов правоотношений которые обладают следующими свойствами общими для...
76458. Понятие семьи. Семейная правоспособность и дееспособность 19.59 KB
  Каждый из субъектов семейных правоотношений наделен семейной правоспособностью наличие дееспособности не всегда является необходимым условием для участия в семейных правоотношениях. Вопросы об особенностях семейной правоспособности и дееспособности будут предметом рассмотрения четвертого параграфа данной главы. В семейном законодательстве отсутствуют определения семейной правоспособности и дееспособности. Исходя из этих определений можно по аналогии дать определение семейной правоспособности и дееспособности.
76459. Юридические факты в семейном праве 18.39 KB
  Юридические факты в семейном праве это реальные жизненные обстоятельства которые в соответствии с действующим семейным законодательством являются основанием возникновения изменения или прекращения семейных правоотношений. Общими для юридических фактов признаками являются следующие: юридический факт это явление реальной действительности то есть наступившее и длящееся в момент его оценки; юридические факты существуют независимо от сознания людей; юридические факты влекут определенные правовые последствия: возникновение изменение...
76460. Родство и свойство, их правовое значение 16.4 KB
  Родство представляет собой один из юридических фактов порождающих семейные правоотношения. По степени родства различают: ближнее родство близкие родственники родственники по прямой восходящей и нисходящей линии родители и дети дедушка бабушка и внуки полнородные и неполнородные братья и сестры; дальнее родство более дальние родственники. Возможно заключение брака между мужчиной и женщиной состоящими в родственных отношениях за исключением близкого родства боковое родство третьей и последующей степеней не является...
76462. Соглашения в семейном праве (понятие, виды, особенности) 16.85 KB
  Соглашений в СК РФ немного это: соглашение об уплате алиментов; соглашение об имени ребенка; соглашение о месте жительства ребенка; соглашение о порядке осуществления родительских прав родителем проживающим отдельно от ребенка; соглашение о разделе имущества. этой же статьи звучит другая формулировка: Место жительства детей при раздельном проживании родителей устанавливается соглашением родителей. Соглашение в семейном праве средство добровольного разрешения наиболее важных как для членов семьи так и для общества...
76463. Сроки в семейном праве и их правовое значение 19.31 KB
  следующие виды сроков: сроки существования имущественных семейных прав пресекательные сроки: так право на алименты на содержание несовершеннолетних детей сохраняется до достижения ими восемнадцатилетнего возраста; сроки ожидания испытательные сроки до истечения которых не могут быть совершены отдельные семейно-правовые акты: согласно п. 11 СК РФ заключение брака производится по истечении месячного срока со дня подачи заявления в органы загса; сроки до наступления которых не допускается возникновение определенных прав и...