14761

Увеличение и уменьшение цифровых изображений

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

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

Цель работы: Изучить методы увеличения и уменьшения цифровых изображений и применить полученные знания на практике. Задание для второго варианта: написать программу способную производить увеличение/уменьшение исходного изображения в нецелое число раз методом билин...

Русский

2013-06-09

263.36 KB

10 чел.

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

Задание для второго варианта: написать программу способную производить увеличение/уменьшение исходного изображения в нецелое число раз методом билинейной интерполяции. С помощью программы уменьшить исходное изображение в 1,2; 3; 7; 21 раз. Полученные изображения затем восстановить до исходного размера и сравнить результаты с исходным изображением.

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

using System;

using System.Drawing;

using System.Drawing.Drawing2D;

using System.Windows.Forms;

namespace ZOS_LAB1_UNIVER

{

   public partial class Form1 : Form

   {

       public double koef = 1;

       public int w1, h1,w_temp,h_temp;

       public Form1()

       {

           InitializeComponent();

       }

       private void button1_Click(object sender, EventArgs e)

       {

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

           openFileDialog1.ShowDialog();

           pictureBox1.Hide();

           pictureBox2.Hide();

           

           pictureBox1.Paint += new PaintEventHandler(this.pictureBox1_Paint);

           pictureBox1.Refresh();

           Image img2 = new Bitmap(openFileDialog1.FileName);

           pictureBox2.Image = img2;

           

           w_temp = img2.Width;

           h_temp = img2.Height;

       }

       private void pictureBox1_Paint(object sender, PaintEventArgs e)

       {

           Image img = new Bitmap(openFileDialog1.FileName);

           int width = img.Width;

           int height = img.Height;

           

           

           e.Graphics.InterpolationMode = InterpolationMode.Bilinear;

           e.Graphics.DrawImage(img, new Rectangle(0, 0, w1, h1), 0, 0, width, height, GraphicsUnit.Pixel);

           

       }

       private void Form1_Load(object sender, EventArgs e)

       {

       }

       private void button2_Click(object sender, EventArgs e)

       {

           pictureBox2.Show();

           pictureBox1.Hide();  

          

       }

       private void button3_Click(object sender, EventArgs e)

       {

           pictureBox1.Show();

           pictureBox2.Hide();

          

       }

#region koef

       private void button4_Click(object sender, EventArgs e)

       {

           koef = 1.2;

           w1 = w_temp * Convert.ToInt16(koef);

           h1 = h_temp * Convert.ToInt16(koef);

       }

       private void button5_Click(object sender, EventArgs e)

       {

           koef = 3;

           w1 = w_temp * Convert.ToInt16(koef);

           h1 = h_temp * Convert.ToInt16(koef);

          

       }

       private void button6_Click(object sender, EventArgs e)

       {

           koef = 7;

           w1 = w_temp * Convert.ToInt16(koef);

           h1 = h_temp * Convert.ToInt16(koef);

           

       }

       private void button7_Click(object sender, EventArgs e)

       {

           koef = 21;

           w1 = w_temp * Convert.ToInt16(koef);

           h1 = h_temp * Convert.ToInt16(koef);

         

       }

       private void button8_Click(object sender, EventArgs e)

       {

           koef = 1.2;

           w1 = w_temp / Convert.ToInt16(koef);

           h1 = h_temp / Convert.ToInt16(koef);

       }

       private void button9_Click(object sender, EventArgs e)

       {

           koef = 3;

           w1 = w_temp / Convert.ToInt16(koef);

           h1 = h_temp / Convert.ToInt16(koef);

       }

       private void button10_Click(object sender, EventArgs e)

       {

           koef = 7;

           w1 = w_temp / Convert.ToInt16(koef);

           h1 = h_temp / Convert.ToInt16(koef);

       }

       private void button11_Click(object sender, EventArgs e)

       {

           koef = 21;

           w1 = w_temp / Convert.ToInt16(koef);

           h1 = h_temp / Convert.ToInt16(koef);

       }

#endregion

     }

}

Скриншоты работы:

Увеличение:


Уменьшение:

Вывод: в ходе работы изучили методы увеличения и уменьшения цветных изображений.


 

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

30303. Проблема автора в литературоведении. История и теория вопроса (работы М.М.Бахтина, Б.О.Кормана, Г.А.Гуковского и др.) 30.5 KB
  Проблема автора в литературоведении. Категория автора считается 1 из стержневых в литературе.Выделяется образ автора под кот понимается особая форма проявления авторской позиции. Участие автора в движении сюжета отношение автора к героям и т.
30304. Формы выражения авторского сознания в прозаическом тексте (автор-биография, автор-концепция, автор-повествователь) 27 KB
  Формы выражения авторского сознания в прозаическом тексте авторбиография авторконцепция авторповествователь Слово автор употребл в литведении в нескх знач. явлся все произведениеобраз автора. явлений характерных для отдельных жанров и родовавтором называют рассказчика повествователя в эпических произведениях либо лирического героя в лирикеБ. автор может выбрать одну из трех форм повествования ОТ АВТОРА объективная форма повествования от 3го лица: кажущееся отсутствие в произв.
30305. Проблема автора в литературоведении. Формы выражения авторского сознания в прозаическом тексте 26 KB
  Проблема автора в литературоведении. Формы выражения авторского сознания в прозаическом тексте Автор от лат. С разной степенью включенности автор участвует в литературной жизни своего времени вступая в непосредственные отношения с другими авторами с литературными критиками с редакциями журналов и газет с книгоиздателями и книготорговцами в эпистолярные контакты с читателями и т. Сходные эстетические воззрения приводят к созданию писательских групп кружков литературных обществ других авторских объединений.
30306. Проблема автора в литературоведении. Формы выражения авторского сознания в лирическом тексте. Понятие лирический герой 24.5 KB
  Понятие лирический герой Формы авторского присутствия в лирике. Лирический герой субъект речи через которого выражаются биографические и эмоциональнопсихологические черты автора. Лирический герой монологическая форма авторского выражения в тексте. Ролевой герой опосредованное выражение автора в тексте черех социокультурный тип прошлого или настоящего.
30307. Проблема автора в литературоведении. Формы выражения авторского сознания в драматургическом тексте 25 KB
  Проблема автора в литературоведении. Большинство ученых разделяют автора в первом значении его еще принято называть реальным или биографическим автором и автора во втором значении. Это пользуясь другой терминологией автор как эстетическая категория или образ автора. Иногда говорят здесь же о голосе автора считая такое определение более правомерным и определенным чем образ автора.
30308. Проблема романа в современном литературоведении 37 KB
  Проблема романа в современном литературоведении РОМАН франц . Роман эпос Нового времени; в отличие от народного эпоса где индивид и народная душа нераздельны в романе жизнь личности и общественная жизнь предстают как относительно самостоятельные; но частная внутренняя жизнь индивида раскрывается в нем эпопейно т. Типичная романная ситуация столкновение в герое нравственного и человеческого личностного с природной и социальной необходимостью. Поскольку роман развивается в новое время где характер взаимоотношений человека и общества...