Изменение контрастности изображения

Автор работы: Пользователь скрыл имя, 09 Декабря 2012 в 08:55, курсовая работа

Краткое описание

Контраст – в сенситометрии и фотометрии – разница в характеристиках различных участков изображения, а также способность фотографического материала или оптической системы воспроизводить эту разницу. Контрастность (также, в различных контекстах употребляется и само слово контраст и коэффициент контраста) – степень контраста, чаще всего выражается безразмерной величиной, отношением или логарифмом отношений.

Содержание

Теоретическая часть 4
Листинг программы 7
Результат программы 10
Список литературы 13

Вложенные файлы: 1 файл

Отчёт.docx

— 318.04 Кб (Скачать файл)

Министерство образования и науки Российской Федерации

Иркутский государственный технический университет

Кафедра «Вычислительной техники»

 

 

 

 

 

 

 

 

 

 

 

Пояснительная записка

к курсовой работе

По дисциплине: «Компьютерная графика»

Тема: «Изменение контрастности изображения»

 

 

 

Выполнил  студент группы ________________________/

Нормоконтроль___________________________________________/Григорьев С.В./

 

 

Курсовая работа защищена с оценкой______________________________________

 

 

 

 

 

Иркутск 2012г.

Оглавление

 

Теоретическая часть4

Листинг программы7

Результат программы10

Список  литературы13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ТеорЕтическая чаСть

 

Контрастность изображения

Контраст – в сенситометрии и фотометрии – разница в характеристиках различных участков изображения, а также способность фотографического материала или оптической системы воспроизводить эту разницу. Контрастность (также, в различных контекстах употребляется и само слово контраст и коэффициент контраста) – степень контраста, чаще всего выражается безразмерной величиной, отношением или логарифмом отношений.

Оптический контраст – отличимость предмета наблюдения от окружающего его фона.

Цветовой контраст – разновидность оптического контраста, связанная с разницей цветовых оттенков. Понятие используется в дизайне, рекламе и в фотографии («за счёт цветового контраста объект выделен…»).

Контраст изображения, диапазон яркостей изображения – отношение яркостей самой светлой и самой тёмной частей изображения.

Контрастность (англ. Contrast ratio – диапазон яркостей или диапазон плотностей) – максимальное отношение яркостей или плотностей устройства или материала вывода изображений. Отношение яркостей или плотностей самой светлой и самой тёмной точки на устройстве или материале. Обычно выражается в виде отношения 1000:1 для дисплеев, десятичного логарифма 3.0D в сенситометрии или двоичного логарифма 10 ступеней в фотографии.

GDI (Graphics Device Interface, Graphical Device Interface)

GDI один из трёх основных компонентов или «подсистем», вместе с ядром и Windows API составляющих пользовательский интерфейс (оконный менеджер GDI) Microsoft Windows.

GDI – это интерфейс Windows для представления графических объектов и передачи их на устройства отображения, такие как мониторы и принтеры.

GDI отвечает за отрисовку линий и кривых, отображение шрифтов и обработку палитры. Он не отвечает за отрисовку окон, меню, эта задача закреплена за пользовательской подсистемой, располагающейся в user32.dll и основывающейся на GDI.

Одно из преимуществ использования GDI вместо прямого доступа к оборудованию – это унификация работы с различными устройствами. Используя GDI, можно одними и теми же функциями рисовать на разных устройствах, таких как экран или принтер, получая на них практически одинаковые изображения.

Простые игры, которые не требуют  быстрой графики, могут использовать GDI. GDI не обеспечивает качественной анимации, потому что в нём нет возможности синхронизации с кадровым буфером. В GDI нет растеризации для отрисовки 3D-графики. Современные игры используют DirectX или OpenGL, что даёт программистам доступ к большему количеству аппаратных возможностей.

Описание GDI.

Для определения атрибутов текста и изображения, которые выводятся  на экран или принтер, используется программный объект под названием  «контекст устройства» (Device Context, DC). DC, как и большинство объектов GDI, инкапсулирует подробности реализации и данные в себе и к ним нельзя получить прямой доступ.

Для любого рисования нужен объект HDC (хэндл DC). При выводе на принтер HDC получается вызовом CreateDC, и на нем зовутся специальные функции для перехода на новую страницу печатаемого документа. При выводе на экран также можно использовать CreateDC, но это приведет к рисованию поверх всех окон вне их границ, потому обычно для рисования на экране используются вызовы GetDC и BeginPaint, принадлежащие уже не GDI, а USER, и возвращающие контекст, ссылающийся на регион отсечения окна.

Функционал:

  • вывод одними и теми же вызовами на экран, принтер, «экран в памяти» (доступный приложению по указателю и созданный им bitmap в памяти, также возможно выделение bitmapов в памяти видеокарты – CreateCompatibleBitmap – и рисование на них, такие битовые карты не доступны по указателю, но дальнейшая перерисовка с них на физический экран происходит очень быстро без нагрузки процессора и шины, и особенно быстро в случае Remote Desktop).
  • вывод в метафайл – запоминание последовательности команд рисования в файле, можно проиграть заново, векторный графический файл .wmf есть именно этот метафайл с небольшим дополнительным заголовком в начале.
  • вывод текста различными шрифтами, в т. ч. TrueType и OpenType, а также шрифтами, интегрированными в принтер (при изображении документа на экране используется ближайший похожий программно реализованный шрифт). Буквы всегда заливаются одним цветом («текущий цвет»), промежутки между ними либо остаются прозрачными, либо же заливаются другим цветом («текущий цвет фона»). Не поддерживается расположение букв по кривой.
  • богатый набор операций с bitmapами, включая масштабирование, автоматическое преобразование из стандартных форматов в текущий формат экрана без усилий со стороны программиста (StretchDIBits), рисование на bitmapах нескольких стандартных форматов, находящихся в памяти, и огромное количество логических операций комбинирования цветов 2 bitmapов – уже имеющегося на устройстве назначения и вновь рисуемого.
  • богатый набор операций векторной графики (примерно тот же, что в PostScript, но используется другой вид сплайнов). Проводимая линия имеет атрибуты – толщину, рисунок пунктира и цвет и способ сглаживания углов многоугольников. Заливка может быть одноцветной, одной из стандартных штриховок или же bitmapом 8 на 8 (эти атрибуты собраны в «объекте BRUSH»). В Windows NT также появились сплайны Безье.
  • все цвета в вызовах – всегда в RGB, независимо от системы цветов текущего устройства. Исключение – отдельные пиксели внутри bitmapов, которые могут быть и в виде, определенном устройством.
  • поддержка регионов отсечения и всех основных логических операций над ними. Координаты в них – 16-битные целые (что ограничивало размер экрана Windows, даже довольно поздних версий, до 32K пикселей).
  • поддержка матрицы поворотов/растяжений – World Transform, не поддерживается для регионов отсечения, только для векторной графики.

 

 

 

Листинг программы

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, jpeg, ExtCtrls, StdCtrls, Spin;

 

type

  TForm1 = class(TForm)

    Button1: TButton;

    Image1: TImage;

    CheckBox1: TCheckBox;

    SpinEdit1: TSpinEdit;

    Image2: TImage;

    Button2: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

 

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure Contrast(Bitmap: TBitmap; Value: Integer; Local: Boolean);

 

  function BLimit(B: Integer): Byte; //Проверка вхождения B в интервал от 0 до 255

  begin

    if B < 0 then

      Result := 0

    else if B > 255 then

      Result := 255

    else

      Result := B;

  end;

 

var

  Dest: pRGBTriple;  //Структура описывает цвет, состоящий из относительных интенсивностей красного, зеленого и синего цвета.

  x, y, mr, mg, mb, W, H, tr, tg, tb: Integer;

  vd: Double;

 

begin

  if Value = 0 then

    Exit;

  W := Bitmap.Width - 1;

  H := Bitmap.Height - 1;

  if Local then

  begin

    mR := 128;

    mG := 128;

    mB := 128;

  end

  else

  begin

    tr := 0;

    tg := 0;

    tb := 0;

    for y := 0 to H do

    begin

      Dest := Bitmap.ScanLine[y]; //Обеспечивает индексированный доступ к каждой строки пикселей

      for x := 0 to W do

      begin

        with Dest^ do //упращение обращение к элементам сруктуры

        begin

          Inc(tb, rgbtBlue); //процедура увеличивает в структуре Dest, переменную rgbtBlue на tb

          Inc(tg, rgbtGreen);

          Inc(tr, rgbtRed);

        end;

        Inc(Dest);

      end;

    end;

    mB := Trunc(tb / (W * H));

    mG := Trunc(tg / (W * H));

    mR := Trunc(tr / (W * H));

  end;

  if Value > 0 then

    vd := 1 + (Value / 10)

  else

    vd := 1 - (Sqrt(-Value) / 10);

  for y := 0 to H do

  begin

    Dest := Bitmap.ScanLine[y]; //Обеспечивает индексированный доступ к каждой строки пикселей

    for x := 0 to W do

    begin

      with Dest^ do

      begin

        rgbtBlue := BLimit(mB + Trunc((rgbtBlue - mB) * vd));

        rgbtGreen := BLimit(mG + Trunc((rgbtGreen - mG) * vd));

        rgbtRed := BLimit(mR + Trunc((rgbtRed - mR) * vd));

      end;

      Inc(Dest);

    end;

  end;

end;

 

procedure TForm1.Button1Click(Sender: TObject); //процедура вывода модифицированной картинки

var

  map: TBitmap;

begin

  map := TBitmap.Create;

  map.Assign(Image1.Picture.Bitmap);

  Contrast(map, SpinEdit1.Value, CheckBox1.Checked);

  Image2.Picture.Bitmap.Assign(map);

  map.Free; //очищаем

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

  close(); //Закрываем приложение

end;

end.

 

Результат программы

 

Рисунок 1 – Программа загружена, изображение не модифицировано

 

 

 

Рисунок 2 – Контрастность  изображения +50

 

 

Рисунок 3 – Контрастность  изображения –50

 

 

 

Рисунок 4 – Контрастность  изображения +100, местный контраст

 

 

Рисунок 5 – Контрастность  изображения –100, местный контраст

 

 

СПИСОК  ЛИТЕРАТУРЫ

 

  1. Петров, М. Н. Компьютерная графика / М. Н. Петров, В. П. Молочков. – 2-е изд. – СПб.: Питер, 2006. – 810 с;
  2. GDI - графика в Delphi «http://delphiworld.narod.ru»;
  3. Контрастность «http://focused.ru».

 


Информация о работе Изменение контрастности изображения