51057

Фильтрация изображения от импульсных помех

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

Коммуникация, связь, радиоэлектроника и цифровые приборы

Программа должна выводить исходное и отфильтрованное изображения, должна присутствовать возможность выбора уровня зашумления, порога фильтра, размера окна

Русский

2014-02-10

135.5 KB

4 чел.

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

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

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

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

Отчёт

По лабораторной работе №3

"Фильтрация изображения от импульсных помех"

Выполнил:

студент группы Э41

Тихонов А.В.

 

Проверил:

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

      

Брест 2013г.

Цель:

Составить программу, выполняющую фильтрацию изображения от импульсных помех.

  1.  Необходимые характеристики:
    1.  изображение хранится во внешнем файле;
      1.  программно в изображение вносятся помехи (точки, линии, ...);
      2.  программа должна выводить исходное и отфильтрованное изображения, должна присутствовать возможность выбора уровня зашумления, порога фильтра, размера окна.
    2.  Варианты (тип фильтра) 
      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 lab3

{

   public partial class Form1 : Form

   {

       public Form1()

       {

           InitializeComponent();

       }

       int Width;

       int Height;

       Bitmap picture;

       private void button1_Click(object sender, EventArgs e)

       {

           openFileDialog1.Filter = "bmp|*.bmp";

           openFileDialog1.ShowDialog();

           picture = (Bitmap)Image.FromFile(openFileDialog1.FileName);

           pictureBox1.Image = picture;

           pictureBox1.Show();

       }

       private void button2_Click(object sender, EventArgs e)

       {

           for (int i=0;i<picture.Height;i+=20)

               for (int j = 0; j < picture.Width; j+=20)

               {

                   picture.SetPixel(j,i,Color.FromArgb(255,255,255));

               }

           pictureBox2.Image = picture;

       }

       private void button3_Click(object sender, EventArgs e)

       {

           

           Color color;

            Width = Convert.ToInt32(textBox1.Text);

             Height = Convert.ToInt32(textBox2.Text);

           int X = Convert.ToInt32(textBox3.Text);

           int Y = Convert.ToInt32(textBox4.Text);

           int H1 = (Height - 1) / 2;

           int W1 = (Width - 1) / 2;

           int[] temp = new int[(Height+Width-1)];

           ///int[][] temp1=new int[Width][Height];

           progressBar1.Step = 1;

           

           progressBar1.Maximum = picture.Width*picture.Height;

           for(int i=Y;i<picture.Height-H1;i++)

               for (int j = X; j < picture.Width-W1; j++)

               {

                   color = picture.GetPixel(j, i);

                   temp[0]=Convert.ToInt32(color.R);

                   int k=1;

                   while(k<=H1)

                   {

                       color = picture.GetPixel(j + k, i);

                       temp[k] = Convert.ToInt32(color.R);

                       k++;

                   }

                   k= 1;

                   while (k <= H1)

                   {

                       color = picture.GetPixel(j - k, i);

                       temp[H1 + k] = Convert.ToInt32(color.R);

                       k++;

                   }

                   k = 1;

                   while (k <= W1)

                   {

                       color = picture.GetPixel(j, i + k);

                       temp[2 * H1 + k] = Convert.ToInt32(color.R);

                       k++;

                   }

                   k = 1;

                   while (k <= W1)

                   {

                       color = picture.GetPixel(j, i - k);

                       temp[W1+H1+H1 + k] = Convert.ToInt32(color.R);

                       k++;

                   }

                   Sort(temp);

                   int color1 = temp[((Height + Width) / 2)-1];

                   picture.SetPixel(j, i, Color.FromArgb(color1, color1, color1));

                   progressBar1.PerformStep();

               }

           pictureBox1.Image = picture;

           progressBar1.Value = 0;

       }

       void Sort(int[] a)

       {

           int top = Height+Width-2;

           while (top != 0)

           {

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

               {

                   if (a[i] > a[i + 1])

                   {

                       int temp;

                       temp = a[i];

                       a[i] = a[i + 1];

                       a[i + 1] = temp;

                   }

               }

               top--;

           }

       }

       private void button4_Click(object sender, EventArgs e)

       {

           Color color;

           int r, g, b = 0;

           double r1, g1, b1;

           int sum;

           for (int i = 0; i < picture.Height; i++)

               for (int j = 0; j < picture.Width; j++)

               {

                   color = picture.GetPixel(j, i);

                   r = color.R;

                   g = color.G;

                   b = color.B;

                   r1 = Convert.ToDouble(r);

                   r1 = r1 * 0.2989;

                   r = Convert.ToInt32(r1);

                   g1 = Convert.ToDouble(g);

                   g1 = g1 * 0.587;

                   g = Convert.ToInt32(g1);

                   b1 = Convert.ToDouble(b);

                   b1 = b1 * 0.114;

                   b = Convert.ToInt32(b1);

                   sum = r + g + b;

                   picture.SetPixel(j, i, Color.FromArgb(sum, sum, sum));

               }

           pictureBox1.Image = picture;

       }

       

   }

}

Тестовый пример:

Вывод: Составил программу, выполняющую фильтрацию изображения от импульсных помех.


 

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

46075. Дислалия. Классификация нарушений звукопроизношения 25 KB
  К ней относятся дефекты воспроизведения звуков речи фонем при отсутствии органических нарушений в строении артикуляционного аппарата. При функциональной дислалии несформированными оказываются специфические речевые умения произвольно принимать позиции артикуляторных органов необходимые для произношения звуков. Это может быть связано с тем что у ребенка не образовались акустические или артикуляционые образцы отдельных звуков. Фонемы не различаются по своему звучанию что приводит к замене звуков.
46076. Методика логопедического воздействия при функциональной дислалии (В 65) 25 KB
  Основной целью логопедического воздействия при дислалии является формирование умений и навыков правильного воспроизведения звуков речи. Ребенок должен научиться: узнавать звуки речи отличать один от другого по акустическим признакам; отличать нормированное произнесение звука от ненормированного; осуществлять слуховой контроль и оценивать качество произносимого звука; принимать необходимые артикуляционные позиции обеспечивающие нормированный звук; варьировать артикуляционные уклады звуков в зависимости от их сочетаемости с другими в...
46077. Ринолалия. Причины, механизмы, основные формы нарушения 29 KB
  Такое нарушения резонанса происходит в результате неправильного направления голосовой или дыхательной струи вследствие механического дефекта носовой полости носоглотки мягкого и твердого неба или расстройства функции мягкого неба. Назальный носовой оттенок речи связан с наличием широкого сообщения между ротовой и носовой полостью и недостаточным смыканием носоглоточного прохода изза укороченного мягкого неба. Расстройство звукообразования зависит : от нарушения деятельности мышечного аппарата мягкого неба глотки и языка; от...
46078. Система коррекционного воздействия при ринолалии в дооперационный период 29.5 KB
  Коррекция гласных предусматривает продвижение языка к нижним зубам и произнесение их на диафрагмальном выдохе в грудном регистре. Начинают с протяжного произнесения гласных ааа эээ на мягком выдохе в грудном регистре. Постановка гласных начинается с а и э которые к этому времени достаточно отработаны артикуляционными упражнениями. Это обусловлено на изменении силы необходимой для удержания сегментов неба в горизонтальном положении и на возрастании объема глоточной полости при артикуляции гласных из которых у и обладают наиболее...
46079. Система коррекционного воздействия при ринолалии в послеоперационный период 28.5 KB
  Постановка гласных звуков. Занятия снова начинают с проговаривания гласных звуков а и э. Как только небо станет удерживаться в подъеме 1 2 секунды следует приступать к нормализации резонанса гласных звуков. Ребенок упражняется в начале в проговаривании изолированных гласных звуков а затем в сочетаниях по 23 звука.
46080. Характеристика различных аспектов изучения дизартрии 14 KB
  Характеристика различных аспектов изучения дизартрии. Основные проявления дизартрии состоят в расстройстве артикуляции звуков нарушениях голосообразования а также в изменениях темпа речи ритма и интонации. Причинами дизартрии являются органические поражения центральной нервной системы в результате воздействия различных неблагоприятных факторов на развивающийся мозг ребенка во внутриутробном и раннем периодах развития. Клиническая картина дизартрии впервые была описана более ста лет назад у взрослых в рамках псевдобульбарного...
46081. Дизартрия. Этиология, механизмы нарушения, симптоматика 19.5 KB
  Этиология дизартрии определяется органическим поражением центральной и периферической нервной системы под влиянием различных неблагоприятных внешних экзогенных факторов воздействующих во внутриутробном периоде развития в момент родов и после рождения. Основными признаками дизартрии являются дефекты звукопроизношения и голоса сочетающиеся с нарушениями речевой моторики и речевого дыхания. При дизартрии в отличие от дислалии может нарушаться произношение как согласных так и гласных звуков. В зависимости от нарушений все дефекты...
46082. Классификация дизартрии, характеристика основных форм и степеней нарушения 35 KB
  У детей с описываемой формой дизартрии наблюдается атрофия мышц языка и глотки снижается также тонус мышц атония. Иногда при подкорковой дизартрии у детей наблюдается снижение слуха осложняющее речевой дефект. Наблюдается инертность иннервационного импульса. Наблюдается при поражении мозжечка и его связей с другими отделами ЦНС.
46083. Характеристика основных направлений коррекционной работы при различных формах дизартрии 29 KB
  Развитие артикуляционной моторики речевого дыхания постановка и закрепление звуков в речи. Важная задача развитие слухового восприятия и звукового анализа а также восприятия и воспроизведения ритма. Основная цель: развитие речевого общения и звукового анализа. Проводится работа по коррекции артикуляционных нарушений: при спастичности расслабление мышц артикуляционного аппарата выработка контроля над положением рта развитие артикуляционных движений развитие голоса; коррекция речевого дыхания; развитие ощущений артикуляционных движений...