Limar писал(а):
Это видел и даже пытался использовать. Что не нравится, так то, что промежуточные пиксели просто будут выброшены на самой первой стадии, а они иногда могут пригодиться для восстановления убитой информации в оставшихся. В бреду показалось, что должна быть следующая обработка - на основные пиксели, которые останутся после обработки,приложить основной алгоритм, который оптимизирован на уменьшение, но и "убиваемые" не убивать, а провести до последней стадии обработки - если они информационны, то могут пригодиться
Я не проводил доскональных исследований качества интерполяции при выборе различных конечных размеров, но по моим прикидкам работает корректно -- т.е. рескэйлинг осушествляется в процессе дебайеризации, а не после него. Т.е. картинка изначально заданного размера должна быть качественнее, чем картинка того же размера, полученная даунсээмплингом (не говоря уже про апсэмплинг). Надо бы проверить точно.
Цитата:
Не понимаю. Есть, конечно, аналитические алгоритмы, по типу шумодавов, которые по анализу содержимого соседних пикселей определяют какую информацию можно усреднить (интерполировать по другому, какого соседа при интерполяции учитывать, а какого нет) - все реализуемо, хоть и не без потерь (естественности картинки, прежде всего). Но не привязаться к пикселям в матричном изображении просто невозможно, имхо. Не понимаю Вас.
Я уже рассказывал выше, что раньше баловался написанием алгоритмов дебайеризации. Как водится, знакомился с новыми веяниями в этой области, наконец, понял, что мне никогда не достичь тех результатов, которые получаются при современных алгоритмах, тем более не удастся их запрограммировать доступными мне средствами. Это задача на несколько порядков более сложная. Я не ручаюсь, что правильно понял суть этих алгоритмов (а тем более нюансы), но вкратце идея такова:
Изображение целиком обсчитывается тем, что можно приблизительно назвать трехмерным волновым анализатором высокой точности. Трехмерным -- потому что мы имеем дело одновременно с горизонтальными и вертикальными "волнами", которые взаимодействуют друг с другом ( в т.ч. интерферируют). Минимальное расстояние между детекторами любого типа является своего рода "несущей частотой". Учитывается все -- в т.ч. статистические данные по картинке и особенности локальных пиксельных групп. Таким образом составляется карта распределения наиболее вероятных локальных частот -- причем в высокоточном представлении данных, с плавающей запятой. Затем определяются локальные трехмерные функции, графики которых максимально соответствуют полученным данным (используемый набор функциональных типов известен заранее и получен в результате анализа многих тысяч реальных изображений) .
На практике это означает, что алгоритм может определить с достаточной вероятностью, что некая деталь изображения (контрастный край, допустим) приходится не на точку, соответствующую координатам какого-то конкретного детектора, а вообще на произвольную точку плоскости (которая может лежать, и скорее всего лежит, где-то между геометрическими центрами детекторов.)
А дальше остается только пересчитать получившуюся "карту" на конкретный размер изображения в пикселях, который может быть совершенно произвольным, никак не коррелировать с физическим количеством детекторов на матрице. Расстояние между детекторами (которое тем меньше, чем больше их количество на заданной площади) определяет лишь вышеупомянутую "несущую частоту", по которой изображение анализируется на первом этапе.
Еще раз хочу подчеркнуть, что ни в коей мере не считаю себя экспертом в области дебайеризации и мои объяснения могут быть местами ошибочными и/или устаревшими. Я объясняю, как понял сам.