Смекни!
smekni.com

Восстановление пикселей (стр. 2 из 2)

(int j=0; j<image1->Width; j++)

{pix=j;(int i=0; i<image1->Height; i++)

{

…[pix+i*bmpData->Stride]

}

}

Не смотря на то, что значения уровня цвета хранятся в одномерном массиве данных, используя вышеуказанный цикл и функцию bmpData->Stride (переход на пиксель стоящий "ниже") появляется возможность находить "битые пиксели", которые в случае присутствия их на снимке, представляются вертикальной или горизонтальной линией (последовательностью), либо одиночными пикселями.

В двойном цикле заданы условия, при выполнении которых программа собственно и определяет, является ли пиксель или последовательность пикселов битой.

(… &&msv [pix] <=POROG&& …)

{ … }

Пиксель будет считаться битым, если его значение уровня цвета меньше или равен 1 для черно-белого изображения, и меньше 4 для каждого из субпикселей для цветного. Данные критерии, полученные при анализе дефектного изображения, с большой точностью позволяют решать такого рода задачи. В прочем пользователь может сам задать значение критерия (по умолчанию 1 и 4 для черно-белого и цветного снимка соответственно).

После того, как алгоритм выявил в массиве данных все пиксели, удовлетворяющие условию, к ним применяется фильтр, который вычисляет новое значение "битого пикселя" и перезаписывает его. Расчет значения происходит посредствам фильтра "среднее", то есть берется среднее значение в окрестности восстанавливаемой точки и подставляет как новое значение. При этом существуют условия, которые не допускают, чтобы в расчет попал другой битый пиксель. Восстановление дефектных пикселей можно произвести 2 способами на выбор пользователя: по значениям 4 и 8 соседних пикселей. (Рис.5). При этом в случае, если какой-либо пиксель из окружения "битый", то его значение в расчет не берется.

Рис. 5. Восстановление битого пикселя по значениям 4 и 8 соседних пикселей

Для "битых пикселей", находящихся на краях изображения (на первом или последнем столбце или первой или последней строчке)

for (int j=0; j<image1->Width; j++)

{pix=j;(j==0&& j==image1->Width-1)

{(int i=0; i<image1->Height; i++)

{(i==image1->Height-1&&i==0)

{}

}

}

предусмотрены другие способы расчета нового значения. (Рис.6). Принцип восстановления значения уровня цвета практически не отличается от вышеуказанного способа, разница заключается лишь в том, что для вычисления среднего значения берутся другие пиксели в окрестности восстанавливаемой точки.

Рис. 6. Восстановление битого пикселя на границах изображения

Применим реализованный фильтр к дефектному изображению.

Рис. 7. Пример №1

Рис. 8. Пример №2

Рис. 9. Пример №3

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

Заключение

В процессе выполнения курсовой работы были изучены основные постоянные свойства "битых пикселей": для черно-белого изображения значение уровня цвета таких пикселей 0-1, для цветного 0-4 для каждого из субпикселей. Помимо этого, был изучен принцип представления изображения в ЭВМ, рассмотрены основные функции, свойства, события.

Итогом курсовой работы является разработанная программа, которая рассчитана на восстановление "битых пикселей" присутствующих на изображении, посредствам фильтра "среднее". Реализованное программное обеспечение позволяет успешно справляться с проблемами такого рода: находит "битые пиксели" и восстанавливает их. Новое значение берется как среднее в окрестности восстанавливаемой точки.

Программ такого рода большое количество и разработчики постоянно их совершенствуют, это не панацея. Прогресс не стоит на месте и для устранения проблем восстановления "битых пикселей" специализированных программ мало, так как проблему необходимо искоренять на этапе создания матрицы: необходимо совершенствовать технологию производства матриц либо вводить инновационные идеи. Так уже в современных дорогих приборах встроен микропроцессор, который умеет определять битый пиксель, и меняет его на среднее из числа соседних, причем в 95% случаев мы и не догадывается о случившемся.

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

1. Астрономические новости NASA на русском языке. Новости космоса. - <http://www.astrogorizont.com>

. Мир фотографии - http://fotomir. ucoz.ru <http://fotomir.ucoz.ru>

3. MSDN Library дляVisual Studio 2008.

4. Пахомов Б.И. С/С++ и MS Visual C++ 2008 для начинающих. - СПб.: БХВ-Петербург, 2009. - 624с.

. Свободная энциклопедия - http://ru. wikipedia.org <http://ru.wikipedia.org>

. Хортон А. Visual C++ 2008. Базовый курс. - Москва: Диалектика, 2009. - 1280с.

. Шовенгердт Р. A. Дистанционное зондирование. Модели и методы обработки изображений. - Москва: Техносфера, 2010. - 560с.