14754

УВЕЛИЧЕНИЕ И УМЕНЬШЕНИЕ ГРАФИЧЕСКИХ ИЗОБРАЖЕНИЙ

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

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

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

Русский

2013-06-09

469.1 KB

6 чел.

Лабораторная лабота №2

"увеличение и уменьшение графических изображений"

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

Задание: написать программу способную производить увеличение исходного изображения в целое число раз методом дублирования. Полученные изображения затем восстановить до исходного размера и сравнить результаты с исходным изображением.

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

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;

using System.IO;

namespace lab2

{

   public partial class Form1 : Form

   {

       public string path;

       public int scale = 0;

       public byte r;

       public byte g;

       public byte b;

       public Bitmap bmp;

       public Bitmap out_bmp;

       public Form1()

       {

           InitializeComponent();

       }

       private void openFileDialogToolStripMenuItem_Click(object sender, EventArgs e)

       {

           OpenFileDialog dialog = new OpenFileDialog();

           dialog.Filter = "bmp | *.bmp";

           dialog.ShowDialog();

           

           bmp = (Bitmap)Image.FromFile(dialog.FileName);

           pictureBox1.Image = bmp;

       }

       private void textBox1_TextChanged(object sender, EventArgs e)

       {

           scale = Convert.ToInt32(textBox1.Text);

           scale = int.Parse(textBox1.Text);

       }

       private void button1_Click(object sender, EventArgs e)

       {

           if (scale != 0)

           {

               ScalePic1(scale, bmp);

           }

       }

       private void ScalePic1(int scale, Bitmap bmp)

       {

           int[, ,] new_color_matrix =

               new int[3, scale * bmp.Height, scale * bmp.Width];

           int[, ,] color_matrix = new int[3, bmp.Height, bmp.Width];

           Color tek_color;

           for (int i = 0; i < bmp.Height; i++)

               for (int j = 0; j < bmp.Width; j++)

               {

                   tek_color = bmp.GetPixel(j, i);

                   color_matrix[0, i, j] = tek_color.R;

                   color_matrix[1, i, j] = tek_color.G;

                   color_matrix[2, i, j] = tek_color.B;

               }

           out_bmp = new Bitmap(scale * bmp.Width, scale * bmp.Height);

           for (int x = 0; x < bmp.Width; x++)

               for (int y = 0; y < bmp.Height; y++)

               {

                   for(int i = 0; i < scale; i++)

                       for(int j = 0; j < scale; j++)

                           out_bmp.SetPixel(x * scale + i, y * scale + j, bmp.GetPixel(x, y));

               }

           pictureBox2.Image = out_bmp;

       }

       private void button2_Click(object sender, EventArgs e)

       {

           pictureBox3.Image = out_bmp;

       }

   }

}

Работа программы:

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


 

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

20986. ВЗАИМОДЕЙСТВИЕ ПРИКЛАДНЫХ ПРОГРАММ С ПОМОЩЬЮ ПРОТОКОЛОВ ЭЛЕКТРОННОЙ ПОЧТЫ И ПРОТОКОЛОВ ПРИКЛАДНОГО УРОВНЯ 353.5 KB
  None; } } ФУНКЦИИ ПРИЕМА ОТВЕТА ОТ СЕРВЕРА protected string Receive { string reply = ; byte[] buffer = new byte[1024]; int ret = socket.Receivebuffer; while ret 0 { reply = Encoding.GetStringbuffer 0 ret; if IsCompletereply break; ret = socket.Receivebuffer; } return reply; } protected bool IsCompletestring reply { string[] parts = reply.
20987. Знакомство с языком разметки html, серверным программированием на языке PHP, а также основой работы с СУБД 509.5 KB
  Основные задачи сайта: Популяризация сериала Звёздные врата́: Атланти́да в сети интернет. Решение задачи Для создания сайта распишем основные этапы: Этапы создания сайта: Построение будущей структуры сайта Заказ дизайна Вёрстка Интеграция с PHP Запуск сайта на сервере Реализация Построение будущей структуры сайта Регистрация и авторизация для использования функций сайта пользователь обязан зарегистрироваться используем базу данных Главная краткий экскурс в историю Актеры и герои список актеров используем базу данных...
20988. Взаимодействие прикладных программ с помощью транспортных протоколов сети Интернет 862.5 KB
  Необходимо создать приложение (клиент) , который мог бы отправлять сообщения серверу при помощи транспортных протоколов (TCP и UDP). Клиент должен содержать файлы настроек для возможности задания порта и IP адреса сервера.
20989. Разработка сайта 285.5 KB
  FTPHostHOST USER PASSWORD создается соединение с сервером file_dir file_name = os.splitFILE print 'try downlo ad s' FILE if host.isdirfile_dir and host.isfileFILE: проверяется существование файла print 'file is existing download to:' DEST_DIRfile_name host.
20990. Цифрові рекурсивні фільтри 81.21 KB
  КРЕМЕНЧУК 2011 Мета: одержання практичних навичок із синтезу рекурсивних фільтрів Завдання Визначити параметри рекурсивного фільтра відповідно до варіанту навести передавальну функцію фільтра комплексну та у zзображеннях рівняння сигналу на виході фільтра та побудувати частотні характеристики фільтра. Розрахунок РЦФ в пакеті Mathcad Вихідні дані Визначення нормованих цифрових частот: Визначення порядку фільтра Фільтр 21 порядку розрахувати важко тому візьмемо фільтр 4 порядку Визначення передавальної функції цифрового...
20991. Цифрові нерекурсивні фільтри 154.13 KB
  КРЕМЕНЧУК 2011 Мета: набуття практичних навичок із синтезу нерекурсивних фільтрів низької та високої частоти смугового та режекторного фільтрів. Порядок виконання роботи Реалізація фільтру низьких частот: Реалізація фільтру високих частот: Реалізація смугового фільтру: Реалізація режекторного фільтру: Висновок: На даній практичній роботі були здобуті практичні навички із синтезу нерекурсивних фільтрів низької та високої частоти смугового та режекторного фільтрів.
20992. Розробка цифрових нерекурсивних та рекурсивних фільтрів в LabVIEW 146.2 KB
  Розміщуємо на блокдіаграмі експрес ВП DFD. Classical Filter Design Functions → Addons → Digital Filter Design → Filter Design → DFD Classical Filter Design Функції → Додаткові → Проектування цифрових фільтрів → Проектування фільтрів → DFD Класична розробка фільтрів. Рисунок 1 Конфігурація FIR ФНЧ Розміщуємо на блокдіаграмі експрес ВП DFD Filter Analysis Аналіз фільтру Functions → Addons → Digital Filter Design → Filter Analysis → DFI Filter Analysis Функції → Додаткові → Проектування цифрових фільтрів → Аналіз фільтрів →...
20993. Дослідження загальної процедури цифрових фільтрів в LabVIEW 240.66 KB
  розміщуємо три горизонтальні повзункові регулятори Horizontal Pointer Slid' Controls → Express → Numeric Control → Horizontal Pointer Slide Елементи керування → Експрес → Цифровий контроль → Горизонтальний повзунковий регулятор для налаштування частоти сигналів; три графіки осцилограми Waveform Graph для відображення вхідного і відфільтрованого сигналів у часовому і спектральному зображенні. На закладці Scale Шкала змінюємо максимальне значення шкали частоти Найквіста на 4000 Гц у всіх трьох елементах і на закладці Data Range Діапазон...
20994. Синтез цифрових фільтрів в MatLab 418.96 KB
  Баттерворда Режекторний Фільтр: Рисунок 1.1 АЧХ Рисунок 1.2 ФЧХ Рисунок 1.3 АФЧХ Рисунок 1.