Создать эффект диафрагмы / глубины резкости - PullRequest
0 голосов
/ 02 ноября 2009

Как я могу создать функцию, которая будет воспроизводить эффекты различных настроек диафрагмы. Я хочу, чтобы пользователь мог нажимать на различные «фокусные точки» своего изображения и видеть, как диафрагма / глубина резкости изменяются в зависимости от того, какой фокус находится в фокусе.

Также мне было бы любопытно, если кто-нибудь знает, как создать ползунок, который создаст эффект размытия при низкой апертуре.

Ответы [ 3 ]

1 голос
/ 16 ноября 2010

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

Все это можно сделать с 16 снимками (4 фокусных расстояния и 4 настройки диафрагмы). Имейте ползунок для значения диафрагмы и ползунок для фокусного расстояния.

Если вы попытаетесь позволить пользователю выбрать точку на картинке, вам понадобится информация 3D для сцены, и я думаю, что это только увеличивает сложность вашего приложения. Делайте вещи максимально простыми, потому что не нужно слишком много, чтобы донести информацию до ваших учеников.

0 голосов
/ 02 ноября 2009

Это звучит как то, что вы можете сделать с помощью настраиваемого пиксельного шейдера. На это способны WPF и Silverlight, а также другие библиотеки для редактирования изображений с открытым исходным кодом.

Прочтите High Level Shader Language для получения дополнительной информации. Также может помочь библиотека .NET ImageTools .

0 голосов
/ 02 ноября 2009

Вам нужен сверточный фильтр. Чтобы получить коэффициенты для фильтра, вы можете посмотреть на импульсную характеристику. Если вы сделаете сфокусированный снимок яркой точки света, вы получите почти идеальный круг - если вы сгенерируете круг и усредните каждый пиксель внутри него, вы получите хорошее приближение к нефокусированному изображению.

...