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

     }

}

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

Увеличение:


Уменьшение:

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


 

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

59908. Визитная карточка классного руководителя 52.5 KB
  На сцену по одному из макета школы выходят дети и представляют себя Лентяй: Вот так бы и сидел весь день И встать бы не решился Сегодня лучший друг мой лень Я с ней давно сдружился.
59909. Вища математика. Завдання та методичні вказівки до виконання контрольної роботи 1.56 MB
  Виробнича ділянка Час на виготовлення одиниці продукції год. Виробничі потужності год. 2 Виробнича ділянка Час на виготовлення одиниці продукції год. Виробничі потужності год.
59911. Внеклассное мероприятие: Чаем угощаем 46.5 KB
  Оборудование: самовар чайная посуда угощение к чаю. Подготовка: Дети разучивают чайные частушки русскую народную игру Просо; подбирают пословицы о русском гостеприимстве песни с именами людей.
59912. Внеклассное мероприятие «Дорожный марафон» 45 KB
  Учитель: Правил дорожных на свете немало Все бы их выучить нем не мешало. Какие это препятствия Дети: читают Загадочный знак Площадь ребусов Песенная остановка Наведём порядок на дороге Секрет Учитель: А помогать нам и вести к завершению марафона будет нам наш городок.
59913. «Армейский калейдоскоп» (сценарий на 23 февраля) 41.5 KB
  Ведущий 1: Февральский ветер ворошил страницы в календаре порядок наводя Потом он вдруг решил остановиться на дате 23 февраля Давным-давно был праздник установлен Что говорить традиция сильна Мальчишек поздравляем снова мы им желаем мира и добра.
59914. Seasons. The weather 44 KB
  Now I will divide you into two teams. The first team will includes the children who were born in winter and autumn. The second team will include the children who was born in summer and spring.
59915. Путешествие в мир растений. Внеклассное мероприятие для учащихся начальной школы 45.5 KB
  Предварительная подготовка: ученики экскурсоводы заранее составляют и рисуют кроссворд подбирают материал о комнатных растения имеющихся в саду подготавливают загадки для ребят распределяют роли.