- Download openCV 4.9.0
- Copy from OpenCV-android-sdk/sdk/ everything except build.gradle into ./opencv
- Enjoy
photo_editor's Introduction
photo_editor's People
photo_editor's Issues
Распознавание лиц/людей на изображении
Подключаем OpenCV к проекту (допускается для базового уровня сложности) и настраиваем таким образом, чтобы она сегментировала людей и/или лица людей на изображении (выделяла прямоугольными рамками те области на изображении, на которых изображены интересующие вас объекты).
Бонус: Вы разрабатываете Ваш собственный алгоритм сегментации изображения (например, вы делаете свою собственную нейронную сеть autoencoder).
Бонус (2): применение фильтров к областям с объектами (без выделения рамкой).
3D кубик
на экране Д6 кубик с различными цифрами (можно поиграть с цветными гранями) на гранях, и дать возможность пользователю менять точку зрения пользователя (по трем координатным осям) на этот кубик. Соответственно, ваше приложение должно отрисовать куб в нужной проекции. (использование ЛЮБЫХ графических движков не допускается).
Бонус: вместо Д6 кубика вы позволяете пользователю самостоятельно выбрать число граней.
Бонус (2): вывод изображений на гранях кубика.
Нерезкое маскирование
Пользователь открывает исходное изображение, выбирает коэффициенты. Задача получить обработанное изображение.
Векторный редактор с рисованием ломаных линий и превращением их в сплайны
Пользователь, нажимая на экран, задаёт последовательность точек, которые образуют ломаную, затем включает режим преобразования, и ломаная линия становится сплайном. (допускается использование ЛЮБЫХ алгоритмов для превращения ломаной в сплайн).
Бонус: дать возможность пользователю после генерации сплайна изменять выпуклость отдельных интервалов; удалять любые точки из последовательности с сохранением сплайно-образного вида линии.
Бонус (2): реализовать антиалиасинг линий.
Бонус (3): Пользователь задаёт последовательность точек, которые образуют многоугольник, затем получает режим преобразования, и получается возможность сделать “псевдомногоульник” за счёт кривых линий.
Implement photo export to gallery
Масштабирование изображения
Пользователь открывает исходное изображение, указывает коэффициент масштабирования. Задача получить отмасштабированное изображение (пример: имея изображение 512x512 и используя коэф. 0.5 новые размеры будут 256х256. Старое изображение сжимается или растягивается под новый размер, сохраняется в памяти устройства).
Бонус: избавление от эффекта “лестницы” при крупном масштабировании.
Памятка: при общем увеличении изображения использовать билинейную фильтрацию, при общем уменьшении трилинейную фильтрацию
Restart filter processing if user changes parameters while it has not yet finished
Повороты изображения
Пользователь открывает исходное изображение, выбирает на какой угол (кратный 90 градусов) его необходимо повернуть. Задача получить новое изображение, повернутое на выбранный градус.
Бонус: повороты на произвольно заданный угол, с успешным решением проблемы необходимых рамок.
Цветокоррекция и цветовые фильтры
Пользователь открывает исходное изображение, выбирает цветовой фильтр, который он хочет применить. Задача получить новое изображение с примененным фильтром. Минимум 3 алгоритмически различных фильтра. (Применение красного фильтра к изображению, если уже реализован зелёный - это пример алгоритмически одинаковых фильтров).
Бонус: реализация дополнительных алгоритмически различных и сложных фильтров.
Бонус (2): используя логику фильтров реализовать стеганографию в 3ёх вариантах
Пользователь выбирает исходное изображение, и другое чёрно-белое(т.е. либо пиксель черный либо белый) изображение(сообщение) размером 50 на 50, чтобы его зашифровать в исходном изображении. Затем пользователь может расшифровать изображение, чтобы получить изначальное сообщение.
Пользователь выбирает исходное изображение, и другое изображение(сообщение), которое размером не больше исходного, но состоит из пикселей оттенков серого(от полностью черного, до полностью белого), чтобы его зашифровать в исходном изображении. Затем пользователь может расшифровать изображение, чтобы получить изначальное сообщение
Пользователь выбирает исходное изображение, и может написать текст размером до 256 символов, фильтр шифрует текст преобразуя исходное изображение. Затем пользователь может расшифровать изображение, получив зашифрованное сообщение текст.
Implement import from camera
Аффинные преобразования изображения
Пользователь открывает в программе произвольное изображение, задаёт 3 точки на исходной картинке, задаёт 3 результирующие точки в новой картинке). Задача получить преобразованное изображение.
Памятка: при общем увеличении изображения использовать билинейную фильтрацию, при общем уменьшении трилинейную фильтрацию.
Памятка 2: почитайте про аффинные преобразования.
Ретуширование
Пользователь открывает исходное изображение, выбирает размер кисти и коэффициент ретуши, проводит по ретушируемой зоне. Задача получить новое изображение с примененной ретушью.
Бонус: реализовать круглую кисть и центрирование (к центру кисти ретушь становится более явной).
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.