14757

МАСШТАБИРОВАНИЕ ИЗОБРАЖЕНИЙ

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

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

Лабораторная лабота №2 Масштабирование изображений Цель: произвести уменьшение и увеличение изображения методами ближайшего соседа и билинейной интерполяцией. Текст программы: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; ...

Русский

2013-06-09

683.18 KB

10 чел.

Лабораторная лабота №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 mashtabirovanie

{

   public partial class Form1 : Form

   {

       public Form1()

       {

           InitializeComponent();

       }

       public byte[] ar;

       private void button1_Click(object sender, EventArgs e)

       {

           Zoom(2, true);   //увеличить

       }

       private void button2_Click(object sender, EventArgs e)

       {

           Zoom(2, false); // уменьшить

       }

       private void Zoom(double d, bool Zoom)

       {

           d = (Zoom == true ? d : (1 / d));

           Bitmap ZoomImg = new Bitmap((int)(pictureBox1.Image.Width * d),

               (int)(pictureBox1.Image.Height * d)); //полученный битмап

           Bitmap tmp = new Bitmap(pictureBox1.Image);

           if (!checkBox1.Checked)

           {

               progressBar1.Value = 0;

               progressBar1.Maximum = ZoomImg.Height + 1;

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

               {

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

                   {

                       ZoomImg.SetPixel(j, i, tmp.GetPixel((int)(j / d), (int)(i / d)));

                   }

                   progressBar1.Value++;

                                  }

           }

           else

           {

               double nX = (double)tmp.Width / (double)ZoomImg.Width;

               double nY = (double)tmp.Height / (double)ZoomImg.Height;

               double fraction_x, fraction_y, one_minus_x, one_minus_y;

               int ceil_x, ceil_y, floor_x, floor_y;

               Color c1 = new Color();

               Color c2 = new Color();

               Color c3 = new Color();

               Color c4 = new Color();

               byte red, green, blue;

               byte b1, b2;

               progressBar1.Value = 0;

               progressBar1.Maximum = ZoomImg.Width + 1;

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

               {

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

                   {

                      

                       floor_x = (int)Math.Floor(x * nX);

                       floor_y = (int)Math.Floor(y * nY);

                       ceil_x = floor_x + 1;

                       if (ceil_x >= tmp.Width) ceil_x = floor_x;

                       ceil_y = floor_y + 1;

                       if (ceil_y >= tmp.Height) ceil_y = floor_y;

                       fraction_x = x * nX - floor_x;

                       fraction_y = y * nY - floor_y;

                       one_minus_x = 1.0 - fraction_x;

                       one_minus_y = 1.0 - fraction_y;

                       c1 = tmp.GetPixel(floor_x, floor_y);

                       c2 = tmp.GetPixel(ceil_x, floor_y);

                       c3 = tmp.GetPixel(floor_x, ceil_y);

                       c4 = tmp.GetPixel(ceil_x, ceil_y);

                       // Blue

                       b1 = (byte)(one_minus_x * c1.B + fraction_x * c2.B);

                       b2 = (byte)(one_minus_x * c3.B + fraction_x * c4.B);

                       blue = (byte)(one_minus_y * (double)(b1) + fraction_y * (double)(b2));

                       // Green

                       b1 = (byte)(one_minus_x * c1.G + fraction_x * c2.G);

                       b2 = (byte)(one_minus_x * c3.G + fraction_x * c4.G);

                       green = (byte)(one_minus_y * (double)(b1) + fraction_y * (double)(b2));

                       // Red

                       b1 = (byte)(one_minus_x * c1.R + fraction_x * c2.R);

                       b2 = (byte)(one_minus_x * c3.R + fraction_x * c4.R);

                       red = (byte)(one_minus_y * (double)(b1) + fraction_y * (double)(b2));

                       ZoomImg.SetPixel(x, y, System.Drawing.Color.FromArgb(255, red, green, blue));

                   }

                   progressBar1.Value++;

                   Application.DoEvents();

               }

           }

           pictureBox1.Width = ZoomImg.Width;

           pictureBox1.Height = ZoomImg.Height;

           pictureBox1.Image = ZoomImg;

       }

       private void button3_Click(object sender, EventArgs e)

       {

           OpenFileDialog open_dialog = new OpenFileDialog();

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

           {

               Bitmap tek_bmp = (Bitmap)Image.FromFile(open_dialog.FileName);

               pictureBox1.Image = tek_bmp;

           }

       }

   }

Результаты выполнения работы:

Увеличение методом ближайшего соседа:

Уменьшение методом ближайшего соседа:

Билинейная интерполяция:

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


 

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

9768. Формирование торговой и ассортиментной политики аптечных учреждений 88 KB
  Тема Формирование торговой и ассортиментной политики аптечных учреждений План реферата. Фармацевтический рынок в России в условиях перехода к рыночной экономике. Понятие Фармацевтические товары их виды и особенности. Товарная и ассортимент...
9769. Сменно-суточное планирование перевозок грузов 242 KB
  Введение. Маршрутизация перевозок - это прогрессивный, высокоэффективный способ организации транспортного процесса, позволяющий значительно сократить непроизводительные порожние пробеги подвижного состава, повысить качество обслуживания клиентуры и...
9770. Создание информационной системы предприятия 131.5 KB
  Создание информационной системы предприятия Не требует доказательств тот факт, что одним из важных источников минимизации издержек и затрат предприятия и оптимизации методов ведения бизнеса, в соответствии с текущей рыночной ситуацией являю...
9771. Решение задачи о коммивояжере 124 KB
  Решение задачи о коммивояжере Введение В настоящее время быстро развивается научно-техническая революция. Появившись в 40-х годах нашего столетия компьютеры и компьютерные технологии прошли за это время путь от ламповых систем с прямым заданием кодо...
9772. СССР В ГОДЫ ПЕРЕСТРОЙКИ (1985- 1991) 41.72 KB
  К середине 80-х годов в социально-экономической системе СССР развились кризисные явления. Советская экономика окончательно утратила динамизм...
9773. Coca-cola. История компании 25.48 KB
  Coca-cola. История компании Рассказ о напитке Кока-Кола, в котором, по иронии судьбы уже давно нет ни коки, ни колы. Что, впрочем, не мешает торговому знаку Coca-Cola быть самым дорогим в мире. Его стоимость на сегодняшний день не дотягивает до 70 м...
9774. Финансовый менеджмент и его структура 20.35 KB
  Финансовый менеджмент и его структура Финансовый менеджмент - вид профессиональной деятельности, направленной на управление финансово-хозяйственным функционированием фирмы на основе использования современных методов. Финансовый менеджмент являе...
9775. Общая характеристика современного мирового хозяйства 23.96 KB
  Общая характеристика современного мирового хозяйства Одной из отличительных особенностей мирового хозяйства (мировой экономики) XX в. является интенсивное развитие международных экономических отношений (МЭО). Диалектика МЭО состоит в том, что укрепл...
9776. Перспективы развития менеджмента в России 29.24 KB
  Перспективы развития менеджмента в России Содержание Введение Глава 1. Понятие, виды и развитие менеджмента в России Глава 2. Проблемы и перспективы современного менеджмента Заключение Библиография Введение Что такое менеджмент Важная ли это состав...