Алгоритмизации обработки изображений

Яркость точек и гистограммы изображения. Изменение яркости и контрастности. Метод ранговой фильтрации с оценкой середины диапазона. Наложение шумов на изображение. Преобразование изображения в негатив. Получение матрицы яркостей и построение гистограмм.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 11.12.2012
Размер файла 1,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

gr.DrawLine(new Pen(Color.Black), ((bp.Width - 10) / 5) * 5 + 5, bp.Height - 17, ((bp.Width - 10) / 5) * 5 + 5, bp.Height - 13);

gr.DrawString("50", new Font("Arial", 8), new SolidBrush(Color.Red), (bp.Width - 10) / 5 - 5, bp.Height - 15);

gr.DrawString("100", new Font("Arial", 8), new SolidBrush(Color.Red), ((bp.Width - 10) / 5) * 2 - 7, bp.Height - 15);

gr.DrawString("150", new Font("Arial", 8), new SolidBrush(Color.Red), ((bp.Width - 10) / 5) * 3 - 5, bp.Height - 15);

gr.DrawString("200", new Font("Arial", 8), new SolidBrush(Color.Red), ((bp.Width - 10) / 5) * 4 - 7, bp.Height - 15);

gr.DrawString("255", new Font("Arial", 8), new SolidBrush(Color.Red), ((bp.Width - 10) / 5) * 5 - 5, bp.Height - 15);

for (i = 0; i < dg.RowCount - 1; i++)

{

for (j = 0; j < dg.ColumnCount - 2; j++)

{

zn = (int)dg.Rows[i].Cells[j + 1].Value;

dop[zn]++;

}

}

dop_max = dop[0];

for (i = 1; i < 256; i++)

if (dop[i] > dop_max)

dop_max = dop[i];

my = Convert.ToDouble(bp.Height - 20) / dop_max;

int kol = 0;

for (i = 0; i < 256; i++)

{

dop[i] = (dop[i] * my);

if (dop[i] != 0)

kol++;

}

double[] x = new double[kol];

double[] y = new double[kol];

kol = 0;

for (i = 0; i < 256; i++)

{

if (dop[i] != 0)

{

y[kol] = dop[i];

x[kol] = i;

kol++;

}

}

//Interpolyatsiya

double[] L2 = new double[kol];

double[] D2 = new double[kol];

double[,] matr2 = new double[kol, kol];

double P, rez, rez1, N, N1;

N = x[0]; N1 = x[0]; rez1 = y[0];

while (N < x[kol-1] - 1)

{

N = N + 1;

for (i = 0; i < kol; i++)

if (N == x[i])

N = N + 0.5;

P = 1;

for (i = 0; i < kol; i++)

for (j = 0; j < kol; j++)

{

if (i == j)

{

matr2[i, j] = N - x[i];

P = P * matr2[i, j];

}

else

matr2[i, j] = x[i] - x[j];

}

for (i = 0; i < kol; i++)

D2[i] = 1;

for (i = 0; i < kol; i++)

for (j = 0; j < kol; j++)

D2[i] = D2[i] * matr2[i, j];

for (i = 0; i < kol; i++)

L2[i] = P / D2[i];

rez = 0;

for (i = 0; i < kol; i++)

rez = rez + y[i] * L2[i];

gr.DrawLine(new Pen(Color.Black), Convert.ToInt64(5 + N1), Convert.ToInt64(bp.Height - 15 - rez1), Convert.ToInt64(5 + N), Convert.ToInt64(bp.Height - 15 - rez));

N1 = N; rez1 = rez;

}

}

private void огибающаяToolStripMenuItem_Click(object sender, EventArgs e)

{

int k;

tabControl1.SelectedIndex = 1;

if (label10.Text == "1")

{

ogibayushaya(1);

refr1();

}

else

{

for (k = 2; k < 5; k++)

ogibayushaya(k);

refr2();

refr3();

refr4();

}

}

public void Save_Image(int img)

{

Graphics gr;

PictureBox pb;

if (img == 1)

{

gr = graphics1;

pb = pictureBox1;

}

else if (img == 2)

{

gr = graphics2;

pb = pictureBox2;

}

else if (img == 3)

{

gr = graphics3;

pb = pictureBox3;

}

else

{

gr = graphics4;

pb = pictureBox4;

}

gr = pb.CreateGraphics();

SaveFileDialog savedialog = new SaveFileDialog();

savedialog.Title = "Сохранить картинку как ...";

savedialog.OverwritePrompt = true;

savedialog.CheckPathExists = true;

savedialog.Filter =

openFileDialog1.Filter = //"JPEG - Формат изображения|*.jpg";

"JPEG File(*.jpg)|*.jpg|" +

"Bitmap File(*.bmp)|*.bmp|" +

"GIF File(*.gif)|*.gif|" +

"TIF File(*.tif)|*.tif|" +

"PNG File(*.png)|*.png";

savedialog.ShowHelp = true;

Rectangle r = pb.RectangleToScreen(pb.ClientRectangle);

Bitmap b = new Bitmap(r.Width, r.Height);

Graphics g = Graphics.FromImage(b);

g.CopyFromScreen(r.Location, new Point(0, 0), r.Size);

if (savedialog.ShowDialog() == DialogResult.OK)

{

// Get the user-selected file name

string fileName = savedialog.FileName;

// Get the extension

string strFilExtn =

fileName.Remove(0, fileName.Length - 3);

// Save file

pb.BackColor = System.Drawing.Color.Transparent;

name = strFilExtn;

filename = fileName;

}

switch (name)

{

case "bmp":

pb.Image.Save(filename, System.Drawing.Imaging.ImageFormat.Bmp);

break;

case "jpg":

b.Save(filename);

break;

case "gif":

pb.Image.Save(filename, System.Drawing.Imaging.ImageFormat.Gif);

break;

case "tif":

pb.Image.Save(filename, System.Drawing.Imaging.ImageFormat.Tiff);

break;

case "png":

pb.Image.Save(filename, System.Drawing.Imaging.ImageFormat.Png);

break;

default:

break;

}

try

{

process1 = new System.Diagnostics.Process();

this.process1.StartInfo.Domain = "";

this.process1.StartInfo.LoadUserProfile = false;

this.process1.StartInfo.Password = null;

this.process1.StartInfo.StandardErrorEncoding = null;

this.process1.StartInfo.StandardOutputEncoding = null;

this.process1.StartInfo.UserName = "";

this.process1.SynchronizingObject = this;

process1.StartInfo.FileName = filename;

process1.EnableRaisingEvents = true;

process1.Start();

}

catch { }

}

private void сохранить1ToolStripMenuItem_Click_1(object sender, EventArgs e)

{

Save_Image(1);

}

private void сохранить2ToolStripMenuItem_Click(object sender, EventArgs e)

{

Save_Image(2);

}

private void сохранить3ToolStripMenuItem_Click(object sender, EventArgs e)

{

Save_Image(3);

}

private void сохранить4ToolStripMenuItem_Click(object sender, EventArgs e)

{

Save_Image(4);

}

private void button1_Click(object sender, EventArgs e)

{

закрытьToolStripMenuItem_Click(sender, e);

}

private void pictureBox1_MouseMove(object sender, MouseEventArgs e)

{

if (FLAG == 0)

{

if ((e.X > 4) && (e.X < 261))

{

label11.Location = new Point(e.X, e.Y + 75);

//Доделать

//label11.Text = "(" + Convert.ToString(e.X - 6) + "; " + Convert.ToString(dop[e.X - 6]) + ")";

}

else

{

label11.Location = new Point(485, 5);

label11.Text = "(X; Y)";

}

}

else

{

label11.Location = new Point(485, 5);

label11.Text = "(X; Y)";

}

}

}

}

Размещено на Allbest.ru


Подобные документы

  • Методика устранения посторонних шумов и коррекции искажения типа дисфокусировки. Обрезка сильно искаженных краев изображения. Построение яркостной гистограммы изображения и его преобразование в индексный формат с восьмицветовой палитрой в пакете Matlab.

    контрольная работа [4,7 M], добавлен 13.01.2012

  • Общий алгоритм сравнения двух изображений. Метод максимальных площадей. Метод гистограмм. Подготовка изображения к распознаванию. Моделирование многомерной функции. Распределение векторов. Деформируемые модели. Реализация программного обеспечения.

    дипломная работа [384,2 K], добавлен 29.09.2008

  • Задачи цифровой обработки изображений. Методы пороговой сегментации. Создание программы представления рисунка в виде матрицы и применения к нему пороговой обработки. Разработка интерфейса программы загрузки и фильтрации изображения с выбранным порогом.

    курсовая работа [2,0 M], добавлен 12.11.2012

  • Описание метода обработки "Выделение контурных линий" и особенностей его применения и программной реализации. Способы увеличения контрастности. Значение правильного подбора формы гистограммы для качества компьютерной обработки растрового изображения.

    курсовая работа [940,2 K], добавлен 24.06.2013

  • Программа визуализации космических изображений. Файлы формата LAN. В программе реализован инструмент ресинтеза цветного изображения, отображаемого в главном окне, инструмент выравнивания гистограмм яркости каналов и диалоговое окно вывода гистограмм.

    курсовая работа [2,9 M], добавлен 12.05.2012

  • Основные понятия о представлении изображения. Определение величины порога с помощью гистограммы яркостей. Глобальная, локальная, адаптивная пороговая обработка. Метод дискриминантного критерия. Исследования на искусственных и предметных изображениях.

    дипломная работа [5,1 M], добавлен 23.12.2012

  • Разработка приложения, целью которого ставится преобразование черно-белых полутоновых изображений в цветные. Обзор методики обработки изображения, способов преобразования изображения с помощью нейронной сети. Описания кластеризации цветового пространства.

    дипломная работа [6,3 M], добавлен 17.06.2012

  • Алгоритм реализации векторного пространства, метод фильтрации шумов на изображении. Формально-логическая модель разработки программного обеспечения, выбор инструментальных средств его реализации. Анализ точности совпадения распознанного изображения.

    дипломная работа [2,7 M], добавлен 13.02.2013

  • Выбор методов обработки и сегментации изображений. Математические основы примененных фильтров. Гистограмма яркости изображения. Программная реализация комплексного метода обработки изображений. Тестирование разработанного программного обеспечения.

    курсовая работа [1,3 M], добавлен 18.01.2017

  • Современные системы текстурного анализа изображений. Примеры текстурной сегментации одноканальных изображений. Использование признаков, полученных на основе гистограммы яркостей второго порядка, для классификации спектрозональных аэрофотоснимков.

    реферат [573,5 K], добавлен 15.01.2017

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.