Оглавление:

Процессор обработки изображений в коде Python GET1033: 5 шагов
Процессор обработки изображений в коде Python GET1033: 5 шагов

Видео: Процессор обработки изображений в коде Python GET1033: 5 шагов

Видео: Процессор обработки изображений в коде Python GET1033: 5 шагов
Видео: Расширение функциональных возможностей SCAD++ с помощью пользовательских плагинов на JScript 2024, Ноябрь
Anonim
GET1033 Процессор обработки изображений с кодировкой Python
GET1033 Процессор обработки изображений с кодировкой Python

Этот проект посвящен созданию моего собственного процессора изображений, закодированного на Python, для моего модуля GET1033 Exploring Computational Media Literacy. Сначала пользователю нужно будет ввести свою фотографию, а затем выбрать нужные фильтры. Я создал 9 фильтров: Показать исходное изображение, Зеркально, Поместить за решетку, Поместить за прозрачную полосу, Круговое изображение, Размытие, Поворот, Изменение цвета и Photoshop. После выбора одного из них у выходного изображения будут эффекты. Как показано на рисунке, это фильтр для изменения цвета, в котором я обнаруживаю пиксели зеленого цвета на изображении и конвертирую их в розовый цвет.

Шаг 1: процесс создания

Процесс создания
Процесс создания

Шаг 1. Загрузите Python отсюда!

Шаг 2: Закодируйте это!

Прежде всего, я импортировал несколько пакетов с предварительно закодированными функциями, доступными для использования в коде. Я импортировал пакеты Scipy, Matplot и Numpy.

Для Scipy я импортировал разные процедуры (MISC) и обработку многомерных изображений (NDIMAGE). MISC предназначен для чтения и сохранения изображения, тогда как NDIMAGE предназначен для выполнения фильтра Гаусса и поворота.

Для Matplotlib это библиотека для построения графиков на Python, которая предоставляет интерфейс, подобный MATLAB.

Для Numpy это библиотека, которая может поддерживать большие многомерные массивы и матрицы. Numpy важен, потому что он позволяет мне эффективно редактировать массив красных, зеленых и синих (RGB) изображений, когда я добавляю или умножаю массив. Например, A = [0, 1, 2] и при наличии Numpy A * 2 = [0, 2, 4] вместо получения A * 2 = [0, 1, 2, 0, 1, 2].

Когда я работаю над фильтром для изменения цвета, я пытаюсь преобразовать зеленые волосы девушки в розовый цвет. Итак, я обнаружил пиксели зеленого цвета на изображении и умножил их на (2, 0,2, 0,8). Таким образом, я получу девушку с розовыми волосами вместо настоящих зеленых волос.

Что касается фотошопа, я пытаюсь заменить зеленый фон на картинке Мстителей на картинку NUS. Итак, я умножил 0 на все зеленые пиксели, а затем добавил пиксели изображения NUS к зеленым пикселям. Тогда я получу фотографию Мстителей в NUS.

Я также прикрепил свой код на GitHub, и вы можете скачать его здесь!

Шаг 2: как это работает?

Как это работает?
Как это работает?

Блок-схема прилагается, чтобы показать, как работает весь код!

1. Сначала пользователю предлагается ввести изображение по своему выбору. 2. Затем отобразится список фильтров, из которых пользователь может выбирать. 3. Если пользователь ввел от «1» до «9», изображение будет обработано и выведено в соответствии с каждым фильтром. Если пользователь ввел 'R', вся программа будет сброшена, и пользователю будет предложено загрузить изображение еще раз. Если пользователь ввел «Q», программа выйдет из цикла.

Шаг 3: что он делает?

В этом проекте всего 9 фильтров, которые я создал, а именно

1. Показать исходное изображение - чтобы показать загруженное изображение.

2. Зеркальное изображение - отраженное дублирование объекта, но перевернутое в направлении

3. Поместить за черту - вставка черных вертикальных полос шириной и интервалом 50 пикселей.

4. Поместить за прозрачную полосу - вставка прозрачных вертикальных полос шириной и интервалом 50 пикселей.

5. Круговое изображение - чтобы сделать круг в центре изображения.

6. Размытие - размытие изображения.

7. Поворот - поворот изображения на 45 градусов.

8. Изменение цвета - изменение зеленого цвета на розовый.

9. Photoshop - чтобы заменить часть изображения другим изображением.

Шаг 4: Почему я это сделал?

Раньше мне любопытно, как в Instagram и Snapchat появились фильтры для изображений, которые сделали их такими интересными. После лекции и руководства по дополненной реальности я хотел заняться чем-то связанным с этим, но я хотел бы начать с базового, а именно с обработки изображений, потому что я слаб в программировании и хотел бы изучить кодирование на Python.

Шаг 5: Улучшения и что будут делать в будущих версиях?

Одним из улучшений этого проекта является создание моих собственных фильтров лиц в видео в реальном времени с использованием Python. Я пытался закодировать это, но мне не удалось добиться ни одного из них из-за отсутствия знаний в области программирования и ограничений по времени. Кроме того, процессор изображений может быть «умнее», когда он может автоматически определять цвета и изменять только те части, которые нам нужны. Был случай, когда я пытаюсь изменить черные волосы человека на другой цвет. В итоге я меняю цвет глаз и волос на синий, что делает картинку очень странной. Я надеюсь, что смогу создать собственное лицо

Рекомендуемые: