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;

       }

       

   }

}

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

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


 

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

27021. Нормативное регулирование бухгалтерской отчетности в РФ 16.38 KB
  После долгих дискуссий решено новые нормые акты по бухгму учету и бухгалтерской отчти называть не стандартами а ПБУ сохранив тем самым нацую особенть в решении методолх вопросов. Приведем перечень действующих российских ПБУ: 1. ПБУ 1 98 Учетная политика организации; 2. ПБУ 2 94 Учет договоров контрактов на капитальное строительство; 3.
27022. Предмет и объекты бухучета, их Классификация 18.33 KB
  Основным типом самостоятельно хозяйствующих субъектов являются предприятия организации ставящие целью получение прибыли от своей деятельности. Таким образом объектами бухгалтерского учёта являются имущество организации источники его формирования обязательства и хозяйственные операции осуществляемые в процессе финансовохозяйственной деятельности. Доходами организации признается увеличение экономических выгод в результате поступления активов денежных средств иного имущества и или погашения обязательств приводящее к увеличению...
27023. Синтетический учет поступления и выбытия целевых средств 16.06 KB
  предписывают учет поступления и расходования средств целевого финансирования на счете 86 Целевое финансирование. К сожалению приходится констатировать тот факт что действующая в области бухгалтерского учета законодательнонормативная база не включает в себя какоголибо отдельного правового акта содержащего четкое определение целевого финансирования и детальной методологии его бухгалтерского учета в некоммерческих организациях4. Таким образом в настоящее время некоммерческие организации могут вести бухгалтерский учет целевого...
27024. Содержание, задачи и источники информации анализа исполнения сметы расходов 13.26 KB
  Содержание задачи и источники информации анализа исполнения сметы расходов В бюджетных и научных учреждениях учет расходов и составление отчетности осуществляются в разрезе показателей сметы которые обобщены в двух основных статьях: текущие расходы и капитальные расходы. Содержанием анализа исполнения смет расходов является оценка эффективности использования выделенных учреждению материальных трудовых и финансовых ресурсов выявление отклонений фактических расходов от сметных назначений а также количественная оценка влияния факторов...
27025. Сравнительная характеристика аудита и ревизии 14.14 KB
  Сравнительная характеристика аудита и ревизии 1.Основная цель ревизии заключается в выявлении недостатков и нарушений для их устранения и наказания виновных. Акт ревизии представляет собой документ в котором излагаются выявленные недостатки и нарушения. Акт и другая информация передаются вышестоящим и другим контролирующим органам для принятия решений по результатам проведенной ревизии .
27026. Сравнительная характеристика финансового и управленческого учета 13.51 KB
  учете потребителями информации являются работники упр. В финансовом учете информация формируется и отражается в отчетности в целом по организации. учете информация формируется и составляется отчетность по центрам ответственности видам деятельности отдельным изделиям и другим позициям. В финансовом учете обязательно используются все элементы метода бухгалтерского учета документация и инвентаризация оценка и калькуляция счета и двойная запись бухгалтерский баланс и отчетность.
27027. УЧЕТНАЯ ПОЛИТИКА, ИЗМЕНЕНИЯ В РАСЧЕТНЫХ РАСЧЕТАХ 12.11 KB
  Компоненты чистой прибыли убытка за период: 1 прибыль убыток от операционной деятельности. Под обычной деятельностью понимают деятельность осуществляемую предприятием как часть его бизнеса а такие относящиеся к ней виды деятельности которые осуществляются впоследствии присущи обычной деятельности или возникают в ее результате; 2 чрезвычайные статьи. Это доходы или расходы возникающие в результате событий или операций которые четко можно отделить от обычной деятельности предприятия и в отношении которых можно предположить что они...
27028. План счетов бюджетного учета. Учетные регистры 19.05 KB
  План счетов бюджетного учета. План счетов бюджетного учета Бюджетный учёт основывается на едином плане счетов. Единый план счетов бюджетного учёта можно рассматривать в двух аспектах. Вовторых понятие единый план счетов предполагает наличие плана счетов в котором систематизированы балансовые счета по всем объектам бюджетного учёта.
27029. Анализ состава, структуры и состояния ОС 13.29 KB
  Анализ состава структуры и состояния ОС В бюджх учрях наиболее интересной явлся группировка ОС по их видам которая устанна формой поясной записки № 0503168 Сведения о движении нефинх активов где отражся инфия о балансой стти и сумме начислой амортии в разрезе аналх счетов к счетам 010100000 010400000 010800000. Это обусловлено тем что не все ОС в одинаковой степени влияют на выполние функций бюджх учрий. К пассивной части отнся объекты здания сооружия транс срва которые призваны создавать благоприятные условия...