Giter VIP home page Giter VIP logo

photo_editor's Introduction

Список задач

Building the project

1. Import open cv

  1. Download openCV 4.9.0
  2. Copy from OpenCV-android-sdk/sdk/ everything except build.gradle into ./opencv
  3. Enjoy

photo_editor's People

Contributors

realwoopee avatar siryefever avatar

Watchers

 avatar

photo_editor's Issues

Распознавание лиц/людей на изображении

Подключаем OpenCV к проекту (допускается для базового уровня сложности) и настраиваем таким образом, чтобы она сегментировала людей и/или лица людей на изображении (выделяла прямоугольными рамками те области на изображении, на которых изображены интересующие вас объекты).
Бонус: Вы разрабатываете Ваш собственный алгоритм сегментации изображения (например, вы делаете свою собственную нейронную сеть autoencoder).
Бонус (2): применение фильтров к областям с объектами (без выделения рамкой).

3D кубик

на экране Д6 кубик с различными цифрами (можно поиграть с цветными гранями) на гранях, и дать возможность пользователю менять точку зрения пользователя (по трем координатным осям) на этот кубик. Соответственно, ваше приложение должно отрисовать куб в нужной проекции. (использование ЛЮБЫХ графических движков не допускается).
Бонус: вместо Д6 кубика вы позволяете пользователю самостоятельно выбрать число граней.
Бонус (2): вывод изображений на гранях кубика.

Нерезкое маскирование

Пользователь открывает исходное изображение, выбирает коэффициенты. Задача получить обработанное изображение.

Векторный редактор с рисованием ломаных линий и превращением их в сплайны

Пользователь, нажимая на экран, задаёт последовательность точек, которые образуют ломаную, затем включает режим преобразования, и ломаная линия становится сплайном. (допускается использование ЛЮБЫХ алгоритмов для превращения ломаной в сплайн).
Бонус: дать возможность пользователю после генерации сплайна изменять выпуклость отдельных интервалов; удалять любые точки из последовательности с сохранением сплайно-образного вида линии.
Бонус (2): реализовать антиалиасинг линий.
Бонус (3): Пользователь задаёт последовательность точек, которые образуют многоугольник, затем получает режим преобразования, и получается возможность сделать “псевдомногоульник” за счёт кривых линий.

Масштабирование изображения

Пользователь открывает исходное изображение, указывает коэффициент масштабирования. Задача получить отмасштабированное изображение (пример: имея изображение 512x512 и используя коэф. 0.5 новые размеры будут 256х256. Старое изображение сжимается или растягивается под новый размер, сохраняется в памяти устройства).
Бонус: избавление от эффекта “лестницы” при крупном масштабировании.
Памятка: при общем увеличении изображения использовать билинейную фильтрацию, при общем уменьшении трилинейную фильтрацию

Повороты изображения

Пользователь открывает исходное изображение, выбирает на какой угол (кратный 90 градусов) его необходимо повернуть. Задача получить новое изображение, повернутое на выбранный градус.
Бонус: повороты на произвольно заданный угол, с успешным решением проблемы необходимых рамок.

Цветокоррекция и цветовые фильтры

Пользователь открывает исходное изображение, выбирает цветовой фильтр, который он хочет применить. Задача получить новое изображение с примененным фильтром. Минимум 3 алгоритмически различных фильтра. (Применение красного фильтра к изображению, если уже реализован зелёный - это пример алгоритмически одинаковых фильтров).
Бонус: реализация дополнительных алгоритмически различных и сложных фильтров.
Бонус (2): используя логику фильтров реализовать стеганографию в 3ёх вариантах
Пользователь выбирает исходное изображение, и другое чёрно-белое(т.е. либо пиксель черный либо белый) изображение(сообщение) размером 50 на 50, чтобы его зашифровать в исходном изображении. Затем пользователь может расшифровать изображение, чтобы получить изначальное сообщение.
Пользователь выбирает исходное изображение, и другое изображение(сообщение), которое размером не больше исходного, но состоит из пикселей оттенков серого(от полностью черного, до полностью белого), чтобы его зашифровать в исходном изображении. Затем пользователь может расшифровать изображение, чтобы получить изначальное сообщение
Пользователь выбирает исходное изображение, и может написать текст размером до 256 символов, фильтр шифрует текст преобразуя исходное изображение. Затем пользователь может расшифровать изображение, получив зашифрованное сообщение текст.

Аффинные преобразования изображения

Пользователь открывает в программе произвольное изображение, задаёт 3 точки на исходной картинке, задаёт 3 результирующие точки в новой картинке). Задача получить преобразованное изображение.
Памятка: при общем увеличении изображения использовать билинейную фильтрацию, при общем уменьшении трилинейную фильтрацию.
Памятка 2: почитайте про аффинные преобразования.

Ретуширование

Пользователь открывает исходное изображение, выбирает размер кисти и коэффициент ретуши, проводит по ретушируемой зоне. Задача получить новое изображение с примененной ретушью.
Бонус: реализовать круглую кисть и центрирование (к центру кисти ретушь становится более явной).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.