Алгоритмизации обработки изображений
Яркость точек и гистограммы изображения. Изменение яркости и контрастности. Метод ранговой фильтрации с оценкой середины диапазона. Наложение шумов на изображение. Преобразование изображения в негатив. Получение матрицы яркостей и построение гистограмм.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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