Имидж-Процессинг
В: Какие показания (величины) должно возвращать каждое сканирующее устройство?
О: 1) переменное значение колонки x и строки y;
2) измеренное или предполагаемое значение Коэффициента q(x,y) = I/I0, где
I = Энергия Света, поступающего из точки x,y и
I0 = Энергия Света, падающего на точку x,y.
3) Преобразование из q(x,y) в значение Серого gw(x,y), где 0 <= gw(x,y) <= 255.
В: Что такое 1) Сканирование Отражений? 2) Сканирование Трансмиссий? Примеры? 3) Сравнение?
О: 1) непрозрачные, не абсолютно черные объекты отражают Свет от каждой точки x,y под углом, равным углу падения (угол отражения). Примеры: Фотография, Радар, УЗИ.
2) Прозрачные объекты просвечиваются видимым Светом, непрозрачные Рентгеновским или Гамма лучами.
Примеры: Диафильмы, Кинофильмы, контроль багажа, рентген, компьютерная томография, микроскопы.
3)
Сравнение | Отражение | Трансмиссия |
Рассеянный Свет | ↑ | ↓ |
Коэффициенты q(x,y) = I/I0 | ↓ | ↑ |
Энергозатраты | ↓ | ↑ |
Качество снимков | ↓ | ↑ |
В: Сравнение | Фотосъемка | Сканирование |
Источник Света | ||
Оптика | ||
Подвижные части | ||
Сенсор(ы) | ||
x,y берут из | ||
Время работы | ||
Временное разрешение | ||
Пространственное разр. | ||
Рассеянный Свет | ||
Качество снимков |
О: Сравнение | Фотосъемка | Сканирование |
Источник Света | неизвестный | Точный = Flying Spot |
Оптика | выпуклая линза | нет |
Подвижные части | только затвор | Источник Света |
Сенсор(ы) | Сенсорный массив | одиночный фотоэлемент |
x,y берут из | Сенсорного Массива | Позиция/Направление Лучей Света |
Время работы | короткое | длинное |
Временное разрешение | ↑ | ↓ |
Пространственное разр. | ↓ | ↑ |
Рассеянный Свет | ↑ | ↓ |
Качество снимков | ↓ | ↑ |
В: Какие принципы используются? | Отражение | Трансмиссия | Фото | Сканнер |
Радар | ||||
Рентген | ||||
Фотография | ||||
Диапроектор, Кино | ||||
LCD-Проектор | ||||
DLP-Проектор | ||||
Компьютерная Томография | ||||
УЗИ |
О: Какие принципы используются? | Отражение | Трансмиссия | Фото | Сканнер |
Радар | X | X | ||
Рентген | X | X | ||
Фотография | X | X | ||
Диапроектор, Кино | X | X | ||
LCD-Проектор | X | X | ||
DLP-Проектор | X | X | ||
Компьютерная Томография | X | X | ||
УЗИ | X | X |
В: Что такое Run Length Code ?
О: = Run Length Code = RLC. Компрессия без потери качества, идеальна для бинарных изображений, где количество нулей и единиц передаются друг за другом, а пустая строка кодируется одним числом - количество точек в строке. При градациях Серого помимо счетчика передается и значение Серого.
Высокий коэффициент компрессии текстов (Факсы). Низкий коэффициент для градаций Серого и цветных Изображений.
В: Дано 4-х строчное Изображение B
0011001000 И = 0101010000 1010101001 0111110000
Найти для каждой строки RunLengthCode без символов переноса. Посчитайте коэффициент компрессии.
О:
22213
1111114
0111111121
154
Компрессия = (25*16Bit * 100%) / 40Bit ≈ 1000 %, где
25 = 5+7+10+3 = Длина RLC
16 = Количество бит Типа UInt16
40 = бинарное Изображение имеет 4 Строки и 10 Колонок
В: При
компрессии Растровых Изображений может проявляться Феномен, когда после
Компрессии Изображение занимает больше памяти, чем до. В каких случаях это
может случаться?
О: 1) на маленьких Изображениях (ICON),
2) на Изображениях с быстро меняющимися цветами,без гомогенных областей
(например шахматная доска),
3) на Изображениях, которые уже сжаты компрессией → любая повторная компрессия
дает плохой результат.
В: Дано 4-х строчное Изображение в градациях Серого G
0011001
G = 0765750
1556671
0111110
Найти Гистограмму длиной 10.
О: H = [8,10,0,0,0,4,3,3,0,0]
В: Типичные и часто встречающиеся Гистограммы с коротким описанием.
О:
В: Дано растровое Изображение в форме 2D-Массива байтов b[ySize,xSize]. Напишите код для построения Гистограммы.
О: int[] H = new int[256]; for ( int i=0; i<256; i++ ) H[i] = 0;
for ( int y = 0; y < ySize; y++ ) for ( int x = 0; x < xSize; x++ ) H[b[y,x]]++;
В: Дано растровое Изображение в форме 2D-Массива байтов b[ySize,xSize]. Напишите код для Бинаризации с помощью Предельного Значения s.
О: for ( int y = 0; y < ySize; y++ ) for ( int x = 0; x < xSize; x++ )
if ( b[y,x] < s ) b[y,x] = 0; else b[y,x] = 255;
В: Дано растровое Изображение через указатель Byte* p на первый Пиксель и количество Пикселей xSize*ySize. Напишите код для построения Гистограммы.
О: int[] H = new int[256]; for ( int i=0; i<256; i++ ) H[i] = 0;
for ( int i = 0; i < xSize*ySize; i++ ) H[*(p+i)]++;
В: Дано растровое Изображение через указатель Byte* p на первый Пиксель и количество Пикселей xSize*ySize. Напишите код для Бинаризации с помощью Предельного Значения s.
О: for ( int i = 0; i < xSize*ySize; i++ )
if (*(p+i) < s) *(p+i) = 0; else *(p+i) = 255;
В: Часто встречающиеся технические ошибки Изображений?
О: Шум, плохой Контраст, Затенение, размытость из-за движений камеры или объекта, размытость из-за загрязнений объектива, цветовые ошибки.
В: Определение Контраста? Причины плохого Контраста и метод его коррекции?
О: Контраст = ( maxЗначение - minЗначение ) * 100% деленное на 255. Плохой Контраст = отсутствие значений в верхнем диапазоне (Недоосвещенное) или в нижнем диапазоне (Переосвещенное) или на обоих краях диапазона Гистограммы. Коррекция = Повышение Контрастности - растяжение Гистограммы.
В: Определение 2D-Image-Shading (IS)? Причины IS? Какая проблема возникает из-за IS? Что такое 3D-Graphics-Shading GS?
О: IS = аддитивное наложение на идеальное Изображение I(x,y) медленно растущей или падающей функции Рампы S(x,y).
Причина: неравномерное освещение. Проблема: IS препятствует отделению объекта от Фона через Предельное Значение threshold.
GS = Затенение 3D-Площадей при косом освещении методом Flat или Gouraud или Phong.
Опасность путаницы: GS не имеет ничего общего с IS!
В: Определение Шума? Причины и методы подавление Шума?
О: Шум = аддитивное наложение на идеальное Изображение I(x,y) случайной функции N(x,y): B(x,y) = I(x,y) + N(x,y). Причины: Броуновское молекулярное движение, спонтанный (независимый от Света) разрыв заряда в сенсорной матрице, случайные помехи при преобразовании, при Усилении, при Транспортировке, при магнитной записи аналогового сигнала. Подавление: Охлаждение сенсорной матрицы, использование АЦП, повышение качество носителя. Исправление: Низкочастотный фильтр.
В: Определение Размытости? Причины и методы исправления Размытости?
О: Сдвиг и смешивание значений соседних Пикселей = Расфокусировка = Blurring.
Причины: a) плохая фокусировка, b) слишком долгое засвечивание подвижной Цели, с) рассеянный свет - дифракция на загрязненной или поцарапанной оптике.
Исправление возможно, если применим соответствующий Высокочастотный Фильтр.
В: Преобразуйте цветное Изображение bmp в градации Серого (C# или Псевдокод).
О 1:
for all pixel in bmp
{ pixel.R = pixel.G = pixel.B = (pixel.R + pixel.G + pixel.B) / 3; }
O 2:
for ( int y = 0; y < bmp.Height; y++ ) for ( int x = 0; x < bmp.Width; x++ ) { Color col = bmp.GetPixel( x, y ); int gray = ( col.R + col.G + col.B ) / 3; bmp.SetPixel( x, y, Color.FromArgb( gray, gray, gray ) ); }
В: Для чего используется Низкочастотный Фильтр? Методы усиления эффекта Размытости?
О: Для подавления Шума и создания искусственного Пустого Изображения для коррекции Затенения.
Эффект Размытости растет если:
1. Все соседи равновесны - уравнять вес центра с соседями.
2. Увеличить Матрицу фильтра M*N.
3. Каскадировать = многократная последовательная проходка.
В: Что такое Фильтр Усреднения? Почему ФУ размером 3x3 так популярен?
О: Низкочастотный фильтр, в котором все элементы имеют единичный вес. 3x3 ФУ очень быстрый, т.к. экономится время на 9-ти операциях умножения на единицу. Нужно лишь сложить 9 значений Серого под матрицей фильтра и разделить эту сумму на 9. Результат: подавление Шума, но повышение Размытости.
В: Что такое весовой Низкочастотный Фильтр? Плюс? Пример Ядра? Пример Ядра, не влияющего на оригинальное Изображение?
О: Значение или Значения в середине Ядра имеют вес больше 1. Результат: влияние Фильтра слабее, чем при обычном НЧ Фильтре. Плюс: низкочастотное фильтрование более контролируемое.
1 1 1 1 1 1 Example Кernel: 1 7 1; useless Kernel: 1 999 1 1 1 1 1 1 1
В: Что такое Фильтр Гаусса?
О: Низкочастотный Фильтр с Гауссовским (3D колокол) распределением весов - формула распределения kernel[yy,xx] = e-d2/a.
В: Что такое Высокочастотный и Полосовой Фильтры?
О: Высокочастотный фильтр содержит позитивные и негативные веса в Ядре. Он тянет все гомогенные области вниз (обычно к нулю), неважно какие это области светлые или темные, и усиливает разницу Значений = выделяет границы объектов.
Полосовой Фильтр - это комбинация из Низкочастотного (позитивные значения в центре Ядра) и Высокочастотного (негативные значения на границе Ядра в виде мексиканской шляпе) - она усиливает Объекты на Изображении и подавляет все остальные структуры.
В: Что такое Градиентный Фильтр? Пример: Собель-Фильтр?
О: Градиентный фильтр имеет два ортогональных Ядра k1 и k2 с 9-ю значениями.
2 Ядра ведут к 2-м Результатам s1 и s2 на каждый Пиксел. Можно представить (s1,s2) как Вектор в направлении наиболее сильного изменения = Градиент. В результирующем Изображении записывается значение sqrt(s1*s1 + s2*s2) = Значение Градиента.
+1 +2 +1 +1 0 -1 Sobel: k1 = 0 0 0 k2 = +2 0 -2 //самый популярный Фильтр -1 -2 -1 +1 0 -1
В: Нелинейный Низкочастотный Фильтр? Плюс? 2 примера с коротким объяснением?
О: Не подчиняется принципу Свертки → благодаря чему подавляет Шум без Размывания.
Медианный Фильтр: Значения Серого сортируются в линейном массиве. new[y,x] = Новое Значение в центре Массива.
Сигма-Фильтр: Выборочное усреднение Значений Серого, игнорируя сильные отклонения:
if ( Math.Abs(alt[y,x]-alt[y+yy,x+xx]) <= sigma ) add_it_to_Summe; else forget_it;