Как знать или вычислить глубину резкости фотографии от тегов EXIF?

Я не знаю о PHP конкретно, но Вы могли идти по дереву процесса, пока Вы не нашли или init или крон.

Принятие PHP может получить свой собственный идентификатор процесса и выполнить внешние команды, это должен быть вопрос выполнения ps -ef | grep pid, где изодромный с предварением Ваш собственный идентификатор процесса, и извлеките идентификатор родительского процесса (PPID) из него.

Тогда делают то же к этому PPID до Вас или достигают крона как родителя или init как родитель.

, Например, это - мое дерево процесса, и Вы видите цепочку принадлежности, 1-> 6386-> 6390-> 6408.

UID     PID  PPID  C  STIME  TTY        TIME  CMD
root      1     0  0  16:21  ?      00:00:00  /sbin/init
allan  6386     1  0  19:04  ?      00:00:00  gnome-terminal --geom...
allan  6390  6386  0  19:04  pts/0  00:00:00  bash
allan  6408  6390  0  19:04  pts/0  00:00:00  ps -ef

те же процессы, выполненные под кроном, были бы похожи:

UID     PID  PPID  C  STIME  TTY        TIME  CMD
root      1     0  0  16:21  ?      00:00:00  /sbin/init
root   5704     1  0  16:22  ?      00:00:00  /usr/sbin/cron
allan  6390  5704  0  19:04  pts/0  00:00:00  bash
allan  6408  6390  0  19:04  pts/0  00:00:00  ps -ef

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

5
задан Neil N 18 May 2010 в 19:55
поделиться

3 ответа

Расчет глубины резкости:

t = A * (S / 1440) * (D - F) / F ^ 2

Ближайшее фокусное расстояние = D / (1+ t)

Дальнее фокусное расстояние = D / (1-t)

И полная глубина резкости является разницей между ними.

Переменные:

A = диафрагма объектива (F-число)

S = размер диагонали сенсора камеры или плоскости пленки в мм

D = фокусное расстояние в мм

F = фокусное расстояние объектива в мм

Конечно, резкость фокуса субъективна и регулируется изменение константы в расчете круга нерезкости (CoC). Здесь я использовал CoC = S / 1440, что является обычно используемым значением.

6
ответ дан 13 December 2019 в 22:11
поделиться

Я предполагаю здесь, поэтому был бы признателен, если бы кто-нибудь еще мог подтвердить это:

Я считаю, что вы не можете программно определить глубину резкости из доступных данных EXIF ​​- вы должны знать диафрагма, фокусное расстояние, и это очень важно: расстояние до объекта.

Поля FNumber и Фокусное расстояние дадут вам первые два. Третий обычно невозможно определить с помощью камеры. Вам понадобится какой-то механизм для определения расстояния - дополнительное оборудование для камеры или некоторые известные значения для триангуляции.

2
ответ дан 13 December 2019 в 22:11
поделиться

На этой веб-странице http://www.dofmaster.com/dofjs.html есть прямое объяснение того, что используется в вычислениях глубины резкости:

1
ответ дан 13 December 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: