Як може сказати будь-який фотограф- аматор , екстремальна постійна обробка завжди гарна. Один такий прийом називається " мініатюрним підробкою ".
Завдання полягає в тому, щоб зображення виглядало як фотографія мініатюрної іграшкової версії себе. Це найкраще підходить для фотографій, зроблених від помірного / високого кута до землі, з низькою дисперсією у висоті об'єкта, але їх можна застосовувати з різною ефективністю до інших зображень.
Завдання: сфотографуйте та застосуйте до нього алгоритм мініатюрного підробки. Існує багато способів зробити це, але для цілей цього виклику воно зводиться до:
Вибірковий розмиття
Частина зображення повинна бути розмитою, щоб імітувати невелику глибину різкості. Зазвичай це робиться вздовж деякого градієнта, лінійного чи фасонного. Вибирайте алгоритм розмиття / градієнта, який вам подобається, але між 15-85% зображення повинно бути "помітне" розмиття.
Підвищення насичення
Підкачайте колір, щоб речі виглядали, що їх малювали вручну. Вихід повинен мати середній рівень насичення> + 5% порівняно з вхідним. (з використанням насичення ВПГ )
Контрастне збільшення
Збільште контраст, щоб імітувати суворіші умови освітлення (такі, як ви бачите, із світлом у приміщенні / студії, а не з сонцем). Вихід повинен мати контрастність> + 5% порівняно з вхідним. (з використанням алгоритму RMS )
Ці три зміни повинні бути здійснені, а інші вдосконалення / зміни не допускаються. Ніяких обрізань, різкості, коригування балансу білого, нічого.
Вхід - це зображення, яке може бути прочитане з файлу чи пам'яті. Ви можете використовувати зовнішні бібліотеки для читання та запису зображення, але ви не можете використовувати їх для обробки зображення. Для цього також заборонені функції (наприклад, ви не можете просто зателефонувати
Image.blur()
)Іншого вводу немає. Сильні сторони обробки, рівні тощо повинні визначатися програмою, а не людиною.
Вихід може бути відображений або збережений у вигляді файлу у стандартизованому форматі зображення (PNG, BMP тощо).
Спробуйте узагальнити. Він не повинен працювати лише на одному зображенні, але зрозуміло, що він працюватиме не на всіх зображеннях. Деякі сцени просто не реагують добре на цю техніку, незалежно від того, наскільки хороший алгоритм. Тут застосовуйте здоровий глузд як при відповіді, так і при голосуванні відповідей.
Поведінка не визначена для недійсних даних та зображень, які неможливо задовольнити специфікацією. Наприклад, зображення в градаціях сірого не може бути насиченим (немає базового відтінку), чистий білий малюнок не може мати підвищений контраст тощо.
Додайте у відповідь щонайменше два вихідні зображення:
Потрібно створити одне із зображень цієї папки . На вибір можна шість, але я намагався зробити їх життєздатними в різній мірі. Ви можете побачити зразки виходів для кожного з
example-outputs
підпапок. Зауважте, що це повні 10-мегапіксельні зображення у форматі JPG прямо з камери, тому у вас є багато пікселів для роботи.Іншим може бути будь-яке обране вами зображення. Очевидно, постарайтеся вибрати образи, які вільно користуються. Також для порівняння включіть оригінальне зображення або посилання на нього.
Наприклад, із цього зображення:
Ви можете вивести щось на кшталт:
Для довідки, наведений вище приклад оброблявся в GIMP з кутовим градієнтом у формі кутової гаусії, насичення +80, контраст +20. (Я не знаю, які одиниці використовує GIMP для них)
Для отримання більшого натхнення або для того, щоб краще зрозуміти, чого ви намагаєтесь досягти, ознайомтесь із цим сайтом чи цим . Ви також можете шукати miniature faking
і tilt shift photography
приклади.
Це конкурс на популярність. Виборці, голосуйте за записи, які, на вашу думку, виглядають найкраще, залишаючись вірними цілі.
Пояснення:
Уточнюючи, які функції заборонені, я не мав наміру заборонити математичні функції. Це був мій намір заборонити функції маніпулювання зображеннями . Так, там є деякі перекриття, але такі речі, як FFT, згортки, матрична математика тощо, корисні у багатьох інших сферах. Ви не повинні використовувати функцію, яка просто знімає зображення і розмивається. Якщо ви знайдете відповідний матовий спосіб створити розмиття, це чесна гра.
GeometricTransformation
,DistanceTransform
,ImageAdd
,ColorNegate
,ImageMultiply
,Rasterize
, іImageAdjust
.) Навіть за допомогою таких обробок зображень функцій високого рівня, код займає до 22 K. Код інтерфейсу користувача, тим не менш, дуже малий.