Похідні́ зобра́ження (англ.image derivatives) можливо обчислювати за допомогою маленьких згорткових фільтрів розміром 2 × 2 чи 3 × 3, таких як оператори Лапласа[en], Собеля, Робертса чи Прюітт.[1] Проте більша маска загалом даватиме краще наближення похідної, й прикладами таких фільтрів є гауссові похідні[2] та фільтри Ґабора.[3] Іноді потрібно видаляти високочастотний шум, і це може бути включено до фільтра, так, що гауссове ядро діятиме як смуговий фільтр.[4] Застосування фільтрів Ґабора[5] в обробці зображень було вмотивовано деякою їхньою подібністю до сприйняття в зоровій системі людини.[6]
Цей оператор роздільний, і його може бути розкладено як добуток ядер інтерполювання та диференціювання, так, що , наприклад, можливо записати як
Похідні Фарида та Сімончеллі
Фарид і Сімончеллі[7][8] пропонують використовувати пару ядер, одне для інтерполювання, а інше для диференціювання (порівняйте з Собелем вище). Ці ядра, фіксованих розмірів 5 x 5 та 7 x 7, оптимізовано таким чином, що перетворення Фур'є наближує їхній правильний зв'язок із похідною.
Як приклад, похідні першого порядку можливо обчислювати наступним, з використанням Matlab, щоби виконувати згортку
Iu=conv2(d,k,im,'same');% похідна по вертикалі (wrt Y)Iv=conv2(k,d,im,'same');% похідна по горизонталі (wrt X)
Слід зазначити, що Фарид і Сімончеллі вивели коефіцієнти першої похідної, точніші порівняно з наданими вище. Проте останні узгоджуються з інтерполятором другої похідної, й відтак їх краще використовувати, якщо шукають як першу, так і другу похідні. У протилежному випадку, коли потрібна лише перша похідна, слід використовувати оптимальні коефіцієнти першої похідної; більше деталей можливо знайти в їхній статті.
Похідні Гаста
Фільтри похідних на основі довільних кубічних сплайнів було запропоновано Гастом.[9] Він показав, як можливо правильніше обчислювати похідні як першого, так і другого порядків, за допомогою кубічних або тригонометричних сплайнів. Щоби похідна обчислювалася для центрального пікселя, ефективним фільтрам похідних потрібно мати непарну довжину. Проте будь-який кубічний фільтр допасовується до 4 ви́біркових точок, даючи центр між пікселями. Це розв'язується за допомогою підходу подвійного фільтрування, що дає фільтри розміром 7 x 7. Ідея в тому, щоби спершу фільтрувати інтерполяцією, отримуючи таким чином інтерпольовані значення між пікселями, після чого повторювати процедуру з використанням похідних фільтрів, де центральне значення тепер припадає на центри пікселів. Це легко довести за допомогою асоціативного закону для згортки
Отже, ядром згортки для обчислення похідної з використанням інтерполювального ядра та ядра похідної стає
Також майте на увазі, що згортка комутативна, тому порядок цих двох ядер неважливий, і також можливо вставити похідну другого порядку, як і ядро похідної першого порядку. Ці ядра виводять з того факту, що будь-яку сплайнову поверхню можливо допасувати над квадратною областю пікселів, порівняйте з поверхнями Безьє. Гаст доводить, що таку поверхню можливо виконувати як роздільну згортку
де — матриця сплайнової основи, а та — вектори, що містять змінні та , як-от
Тепер можливо встановити ядра згортки в
Похідні першого порядку в центральному пікселі відтак обчислюють як
і
Так само, ядрами похідної другого порядку є
і
Кубічносплайновий фільтр оцінюють у його центрі , й відтак
Подібним чином, похідними першого порядку стають
І подібним же чином похідними другого порядку є
Для обчислення похідних зображення за допомогою наведених вище рівнянь можливо застосовувати й використовувати будь-який кубічний фільтр, як-от Безьє, Ерміта, чи B-сплайни.
Для обчислення похідних можливо використовувати керовані фільтри.[10] Крім того, Савицький та Голей[11] пропонують підхід[en] поліномного згладжування методом найменших квадратів, який можливо використовувати для обчислення похідних, а Луо зі співавт.[12] обговорюють цей підхід докладніше. Шарр[13][14][15] показує, як створювати фільтри похідних шляхом мінімізації похибки в області Фур'є, а Єне зі співавт.[16] докладніше обговорюють принципи проєктування фільтрів, включно з фільтрами похідних.
Примітки
↑Pratt, W.K., 2007. Digital image processing (4th ed.). John Wiley & Sons, Inc. pp. 465–522 (англ.)
↑H. Bouma, A. Vilanova, J.O. Bescós, B.M.T.H. Romeny, F.A. Gerritsen, Fast and accurate gaussian derivatives based on b-splines, in: Proceedings of the 1st International Conference on Scale Space and Variational Methods in Computer Vision, Springer-Verlag, Berlin, Heidelberg, 2007, pp. 406–417. (англ.)
↑P. Moreno, A. Bernardino, J. Santos-Victor, Improving the sift descriptor with smooth derivative filters, Pattern Recognition Letters 30 (2009) 18–26. (англ.)
↑B. Jähne, H. Scharr, and S. Körkel. Principles of filter design. In Handbook of Computer Vision and Applications. Academic Press, 1999. (англ.)
↑B. Jähne, P. Geissler, H. Haussecker (Eds.), Handbook of Computer Vision and Applications with Cdrom, 1st ed., Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1999, pp. 125–151 (Chapter 6). (англ.)
Посилання
derivative5.m Фарид і Сімончеллі: 5-вентильні перша та друга дискретні похідні.
derivative7.m Фарид і Сімончеллі: 7-вентильні перша та друга дискретні похідні
kernel.m Гаст: 1-а та 2-га дискретні похідні для кубічних сплайнів, сплайнів Кетмелла — Рома, сплайнів Безьє, B-сплайнів, та тригонометричних сплайнів.