Цифровая обработка изображений. Преобразование в полутоновое и бинарное
Характеристики растрового изображения и растровых графических редакторов. Цифровое преобразование цветного изображения в полутоновое и бинарное. Итерационное определение порога, вычисление середины между средним значением "тёмных" и "светлых" пикселей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 10.01.2014 |
Размер файла | 17,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Белорусский национальный технический университет
Международный институт дистанционного образования
Контрольная работа
по дисциплине: «Получение и обработка изображений»
Цифровая обработка изображений. Преобразование в полутоновое и бинарное
Выполнил: Серафимович А.М.
студент группы 417220/20
Проверил: Старовойтов В.В.
Минск 2013
Содержание
Задание
1. Теоретические сведения
2. Листинг программы
Литература
Задание
Преобразовать цветное изображение в полутоновое, затем в бинарное итерационно вычисляя порог, вычисляя середину между средним значением «тёмных» и «светлых» пикселей:
1. Вычислить мин. и макс. значения яркости. Порог = (мин.+макс.)/2.
2. Найти среднее значение С1 для пикселей с яркостью меньше Порог. Найти среднее значение С2 для пикселей с яркостью больше-равно Порог.
Порог = (С1+С2)/2
3. Повторять пункт 2 пока Порог не перестанет меняться.
1. Теоретические сведения
Растровое изображение -- изображение, представляющее собой сетку пикселей или цветных точек (обычно прямоугольную) на компьютерном мониторе, бумаге и других отображающих устройствах и материалах (растр).
Важными характеристиками изображения являются:
количество пикселей -- может указываться отдельно количество пикселей по ширине и высоте (1024Ч768, 640Ч480 и т. п.) или же общее количество пикселей;
количество используемых цветов или глубина цвета (эти характеристики имеют следующую зависимость:
N=2^k,
где N -- количество цветов,
k -- глубина цвета);
цветовое пространство (цветовая модель) -- RGB, CMYK, XYZ, YCbCr и др.;
разрешение -- справочная величина, говорящая о рекомендуемом размере изображения.
Растровую графику редактируют с помощью растровых графических редакторов. Создается растровая графика фотоаппаратами, сканерами, непосредственно в растровом редакторе, также путем экспорта из векторного редактора или в виде снимков экрана.
Растровые изображения обычно хранятся в сжатом виде. В зависимости от типа сжатия может быть возможно или невозможно восстановить изображение в точности таким, каким оно было до сжатия (сжатие без потерь или сжатие с потерями соответственно). Так же в графическом файле может храниться дополнительная информация: об авторе файла, фотокамере и её настройках, количестве точек на дюйм при печати и др.
Цветное индексированное изображение -- такое изображение, цвет каждого элемента которого задаётся в специальной таблице -- палитре.
Таким образом, каждый элемент изображения имеет в качестве цвета некий условный индекс, который расшифровывается по таблице цветов (палитре) в реальные компоненты цвета, что позволяет для каждого такого элемента построить «истинный» цвет в заданной цветовой модели.
Полноцветное изображение характеризуется представлением конечного синтезированного цвета на основе его компонентов в заданной цветовой модели (RGB, CMYK или др.).
В отличие от цветного индексированного изображения такое изображение представляет цвет любого элемента непосредственно через значения каждого компонента в заданной цветовой модели.
Полутоновое изображение -- это изображение, имеющее множество значений тона, и их непрерывное, плавное изменение.
Примерами полутоновых изображений могут быть рисунки, картины, выполненные красками, фотографии.
Бинарное изображение (двухуровневое, двоичное) -- разновидность цифровых растровых изображений, когда каждый пиксель может представлять только один из двух цветов.
Значения каждого пикселя условно кодируются, как «0» и «1». Значение «0» условно называют задним планом или фоном (англ. background), а «1» --передним планом (англ. foreground).
Часто при хранении цифровых бинарных изображений применяется битовая карта, где используют один бит информации для представления одного пикселя. Также, особенно на ранних этапах развития техники, двумя возможными цветами были чёрный и белый, что не является обязательным.
Из-за этого бинарное изображение иногда могут называть однобитным, монохромным, чёрно-белым и т.д., что не совсем верно. Бинарные изображения можно рассматривать, как частный случай цветного индексированного изображения с палитрой из двух цветов различных оттенков или как частный случай полутонового изображения, при использовании цветов одного оттенка с различной яркостью.
Преобразование цветного изображения в полутоновое заключается в получении яркости каждой точки по формуле: Y=0.3R+0.59G+0.11B и последующем копировании на все три канала полученной величины.
Бинаризация - это преобразование изображения к одноцветному (монохромному или бинарному).
Пусть f(i,j) - полутоновое изображение, t - порог и b0, b1 - два бинарных значения (для бинарного черно-белого b0 = 0, b1 = 255). Результат порогового разделения - бинарное изображение g(i,j), полученное следующим образом:
если f(i,j)<=t, то g(i,j) = b0, иначе - g(i,j) = b1.
Как видно, основной задачей является выбор значения t с помощью некоторого критерия. Это значение может выбираться как одинаковым для всего изображения, так и различным для различных его частей. Если значения объектов и фона режима достаточно однородны по всему изображению, то может использоваться одно пороговое значение для всего изображения. Использование единственного значения порога для всех пикселей изображения называется глобальным пороговым разделением.
растровый графический цифровой полутоновый бинарный
2. Листинг программы
Главный класс программы:
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Main {
public static void main(String[] args) throws IOException {
if (args.length < 1) {
System.out.println("use path to file as parameter");
return;
}
String src = args[0];
int indexOfFilename = src.lastIndexOf("\\") + 1;
String outputDir = src.substring(0, indexOfFilename) + "\\";
String[] filename = src.substring(indexOfFilename).split("\\.");
String name = filename[0];
String ext = "." + filename[1];
String grayscaleName = name + "_gray" + ext;
String binaryName = name + "_bin.bmp";
String outputGrayscalePath = outputDir + grayscaleName;
String outputBinaryPath = outputDir + binaryName;
File outputGrayscaleFile = new File(outputGrayscalePath);
File outputBinaryFile = new File(outputBinaryPath);
BufferedImage original = ImageIO.read(new File(src));
Performer performer = Performer.create(original);
BufferedImage grayscale = performer.grayscale();
BufferedImage binary = performer.binary();
ImageIO.write(grayscale, "jpg", outputGrayscaleFile);
ImageIO.write(binary, "bmp", outputBinaryFile);
}
}
Класс, отвечающий за обработку изображения:
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.awt.image.Raster;
import java.awt.image.WritableRaster;
import java.util.ArrayList;
import java.util.List;
public class Performer {
private BufferedImage image;
private BufferedImage grayscale;
private BufferedImage binary;
private Performer(BufferedImage image) {
this.image = image;
}
public static Performer create(BufferedImage image) {
return new Performer(image);
}
public BufferedImage grayscale() {
return grayscale == null ? performGrayscale() : grayscale;
}
public BufferedImage binary() {
return binary == null ? performBinary() : binary;
}
private BufferedImage performGrayscale() {
grayscale = new BufferedImage(image.getWidth(), image.getHeight(),
BufferedImage.TYPE_BYTE_GRAY);
WritableRaster raster = grayscale.getRaster();
for (int x = 0; x < image.getWidth(); x++) {
for (int y = 0; y < image.getHeight(); y++) {
int rgb = image.getRGB(x, y);
Color c = new Color(rgb);
int r = c.getRed();
int g = c.getGreen();
int b = c.getBlue();
int gray = (int) (r * 0.3 + g * 0.59 + b * 0.11);
raster.setPixel(x, y, new int[] { gray });
}
}
return grayscale;
}
private BufferedImage performBinary() {
int step = step(grayscale());
int min = 0;
int max = 1;
Raster originalRaster = grayscale().getData();
binary = new BufferedImage(image.getWidth(), image.getHeight(),
BufferedImage.TYPE_BYTE_BINARY);
WritableRaster resultRaster = binary.getRaster();
for (int x = 0; x < originalRaster.getWidth(); x++) {
for (int y = 0; y < originalRaster.getHeight(); y++) {
int pix = originalRaster.getPixel(x, y, (int[]) null)[0];
if (pix < step) {
resultRaster.setPixel(x, y, new int[] { min });
} else {
resultRaster.setPixel(x, y, new int[] { max });
}
}
}
return binary;
}
private int step(BufferedImage image) {
return iterationStep(image, commonStep(image));
}
private int commonStep(BufferedImage image) {
int min = 255;
int max = 0;
Raster raster = image.getData();
for (int x = 0; x < raster.getWidth(); x++) {
for (int y = 0; y < raster.getHeight(); y++) {
int pix = raster.getPixel(x, y, (int[]) null)[0];
if (pix < min) {
min = pix;
}
if (pix > max) {
max = pix;
}
}
}
return (min + max) / 2;
}
private int iterationStep(BufferedImage image, int commonStep) {
List<Integer> min = new ArrayList<Integer>();
List<Integer> max = new ArrayList<Integer>();
Raster raster = image.getData();
for (int x = 0; x < raster.getWidth(); x++) {
for (int y = 0; y < raster.getHeight(); y++) {
int pix = raster.getPixel(x, y, (int[]) null)[0];
if (pix >= commonStep) {
max.add(pix);
} else {
min.add(pix);
}
}
}
int step = (average(min) + average(max)) / 2;
return step == commonStep ? step : iterationStep(image, step);
}
private int average(List<Integer> list) {
int result = 0;
for (Integer pix : list) {
result += pix;
}
return list.size() == 0 ? 0 : result / list.size();
}
}
В результате запуска программы, в директории исходного изображения создаются 2 файла (полутоновое и бинарное).
Литература
1. «Цифровая обработка изображений» Р. Гонсалес, Р. Вудс, Техносфера, Москва 2005 г.
2. Методические указания к выполнению контрольных работ по дисциплине «Цифровая обработка изображений».
3. API specification for the Java™ Platform, Standard Edition
Размещено на Allbest.ru
...Подобные документы
Разработка программы, предназначенной для сжатия или компрессии полутонового изображения международным стандартом JPEG. Описание метода JPEG, выдача результатов в виде декодированного изображения. Обзор методов компрессии полутонового изображения.
курсовая работа [43,5 K], добавлен 14.10.2012Особенности формирования растрового изображения. Графические примитивы, которые используются наиболее часто в современных графических системах (линии и фигуры). Основные алгоритмы создания растровых изображений в графических компьютерных программах.
презентация [883,6 K], добавлен 26.01.2015Яркость точек и гистограммы изображения. Изменение яркости и контрастности. Метод ранговой фильтрации с оценкой середины диапазона. Наложение шумов на изображение. Преобразование изображения в негатив. Получение матрицы яркостей и построение гистограмм.
курсовая работа [1,5 M], добавлен 11.12.2012Растровая графика, составление графических изображений из отдельных точек (пикселей). Растровые графические редакторы. Векторная графика - построение изображения из простых объектов. Достоинства, недостатки и применение растровой и векторной графики.
презентация [7,8 K], добавлен 06.01.2014Разработка приложения, целью которого ставится преобразование черно-белых полутоновых изображений в цветные. Обзор методики обработки изображения, способов преобразования изображения с помощью нейронной сети. Описания кластеризации цветового пространства.
дипломная работа [6,3 M], добавлен 17.06.2012Виды графических редакторов. Форматы файлов для хранения растровых графических изображений. Среда графического редактора. Панели инструментов и режимы работы графических редакторов. Инструменты редактирования рисунка. Изменение шрифта текста на рисунке.
контрольная работа [246,6 K], добавлен 16.12.2010Описание метода обработки "Выделение контурных линий" и особенностей его применения и программной реализации. Способы увеличения контрастности. Значение правильного подбора формы гистограммы для качества компьютерной обработки растрового изображения.
курсовая работа [940,2 K], добавлен 24.06.2013Информация о графических форматах. Хранение изображения в программе. Очередь как вспомогательная структура данных. Загрузка изображения из двоичного файла. Операции с изображением. Уменьшение разрешающей способности. Увеличение размера изображения.
курсовая работа [1,1 M], добавлен 29.06.2013Методика устранения посторонних шумов и коррекции искажения типа дисфокусировки. Обрезка сильно искаженных краев изображения. Построение яркостной гистограммы изображения и его преобразование в индексный формат с восьмицветовой палитрой в пакете Matlab.
контрольная работа [4,7 M], добавлен 13.01.2012Описание математических методов представления и обработки графических изображений. Описание разработанного программного дополнения. Описание функций и их атрибутов. Представление и обработка графических изображений. Результаты тестирования программы.
курсовая работа [1,7 M], добавлен 27.01.2015Элементы и принципы графического дизайна в художественном образовании. Разработка графических изображений средствами Adobe Photoshop. Обработка изображения с помощью Photoshop. Подготовка изображения с прозрачным фоном. Плавное слияние двух изображений.
курсовая работа [2,5 M], добавлен 27.11.2012Профессиональная обработка звука. Звук и звуковая волна. Программа обработки звука Audacity. Цифровая и аналоговая запись. Аналогово-цифровое преобразование, микширование. Импульсная и частотная модуляция. Хранение оцифрованного звука, сэмплирование.
курсовая работа [47,9 K], добавлен 13.04.2010Преобразование аналоговой формы первичных сигналов для их обработки с помощью ЭВМ в цифровой n-разрядный код, и обратное преобразование цифровой информации в аналоговую. Практическая реализация схем аналого-цифровых и цифро-аналоговых преобразователей.
реферат [89,2 K], добавлен 02.08.2009Основные понятия о представлении изображения. Определение величины порога с помощью гистограммы яркостей. Глобальная, локальная, адаптивная пороговая обработка. Метод дискриминантного критерия. Исследования на искусственных и предметных изображениях.
дипломная работа [5,1 M], добавлен 23.12.2012Работа с бинарными изображениями, методы их преобразования в полутоновые. Сущность бинаризации изображений и роль правильного выбора порога квантования. Применение полноцветных, полутоновых и бинарных изображений, способы построения гистограмм.
лабораторная работа [1,3 M], добавлен 30.09.2009Преобразование в цифровой формат изображения, полученного в результате передвижения руки оператора, дигитайзером. Посылка координат положения пера в компьютер. Методика работы на дигитайзере. Его технические характеристики. Перья, реагирующие на силу.
презентация [2,0 M], добавлен 13.12.2013Преобразование графической информации из аналоговой формы в цифровую. Количество цветов, отображаемых на экране монитора. Расчет объема видеопамяти для одного из графических режимов. Способы хранения информации в файле. Формирование векторной графики.
презентация [2,1 M], добавлен 22.05.2012Компьютерная графика и её виды. Векторный графический редактор CorelDraw. Создание изображения панели осциллографа, разработка наглядного изображения. Особенности графических редакторов, изображение панели осциллографа в программе Adobe Illustrator.
курсовая работа [4,2 M], добавлен 04.05.2023Векторная графика как способ описания изображения при помощи прямых и изогнутых линий. Пример растрового и векторного представления листа с дерева. Редакторы векторной графики. Особенности растрового изображения. Методы сжатия с потерями и без потерь.
реферат [2,1 M], добавлен 28.09.2014Архивация и компрессия как методы сжатия изображений. Алгоритмы сжатия данных. Вспомогательные средства, которые используются для понижения объемов файлов: изменение цветовой модели изображения, изменение разрешения растрового файла, ресемплирование.
презентация [45,3 K], добавлен 06.01.2014