Обрезать фото по контуру: Как вырезать картинку по контуру

Программы для обрезки фотографий на телефоне и пк и онлайн

На чтение 4 мин. Просмотров 5k. Опубликовано

Приветствуем вас, дорогие читатели! Существует много приложений для работы с фотографиями. Одни подходят для телефона, другие – для компьютера. Третьими можно пользоваться онлайн на любых устройствах. Чтобы разобраться со всеми редакторами и выбрать лучший, не всегда есть время. В нашем небольшом очерке мы расскажем о самых удобных, по отзывам пользователей, приложениях.

Содержание

Обзор программ для обрезки фото: под нужный размер, по контуру, без потери качества для телефонов и пк

Большинство из редакторов позволяют придать фотке нужный размер. В них можно установить длину, ширину.

Программа для обрезки фотографий

Отличный выбор для работы на компьютере:

  • adobe photoshop. Приложение позволяет сохранить нужные пропорции, подготовить фото для документа, сформировать края, обрезать по нужному контуру, убрать фон, улучшить качество. Обрезание осуществляется по размеру, основываясь на пикселях, сантиметрах;
  • coreldraw. Редактирует векторные и растровые картинки. После обработки качество остается на прежнем высоком уровне;
  • ms paint и его улучшенная версия paint.net. Самая простая программа из всего списка. В ней можно быстро вырезать нужную форму, придать фото вид круга, овала, звезды, сердечка, использовать для дальнейшей работы.

Обрезать рисунок по размеру можно в таких компьютерных приложениях, как ms word, powerpoint. Они входят в стандартный пакет ms office и не требуют дополнительной установки.  В каждой из них можно выполнить обрезку в виде квадрата или прямоугольника. Также существует опция вырезать картинку по контуру заданной фигуры.

Для телефонов список прог другой. Большинство из них имеет функцию кадрирования только в виде прямоугольника.

На айфонах и устройствах с андроид работают:

  • picsart. Версия с ограниченным количеством возможностей скачивается бесплатно, за остальные нужно заплатить. Опция кадрирования входит в бесплатный пакет;
  • snapseed считается полноценным фоторедактором. Обладает большим количеством эффектов;
  • pixlr. Еще одно приложение, поддерживаемое на мобильниках с различными операционными системами;
  • piclab. В этом редакторе можно обрезать снимки, а также их подписать.

Какие проги для кадрирования фотографий можно скачать бесплатно

За загрузку многих фоторедакторов, использующихся для выстраивания композиции, обрезки картинок, придется заплатить.

Есть, однако, приложения, скачать которые можно без оплаты.

Для пк это:

  • пробные версии фотошоп, корел. Как правило, работать они будут только один месяц, потом их нужно будет покупать;
  • xnview. Подойдет, если нужно получить результат быстро, не ухудшить качество изображения. Поддерживает большинство форматов;
  • acdsee. Приложение — простое, не поддерживает обрезку в произвольной форме.

Многие из приложений для телефонов также бесплатны.

Для андроид это:

  • google фото. Обычная для большинства устройств программа обрезает снимки, изменяет масштаб, границы;
  • photo editor. Меняет размер, повышает контраст для привлечения внимания к деталям;
  • aviary. Неудобен тем, что допускает только кадрирование по прямоугольной рамке.

Для айфонов, айпадов бесплатны:

  • фото. Родной редактор для устройств с iOS;
  • lipix. Имеет опцию обрезки. Набор рамок — впечатляющий, их 54;
  • snapseed. Приложение предлагает много вариантов рамок;
  • pixlr. Имеет функцию сохранения пропорций, определения параметров ширины и высоты.

А вот за такой популярный редактор, как elight, придется заплатить.

Обзор инструментов для обрезки картинок онлайн

Впрочем, для кадрирования необязательно устанавливать фоторедакторы. В настоящее время доступно много онлайн сервисов, где можно придать фоткам определенную форму, размер.

Программа для обрезания фото онлайн

Удобны в использовании:

  • онлайн фотошоп. В приложении есть опция обрезки по заданному контуру, кругу. Позволяет настроить масштаб, исходя из пропорций, используемых для разных типов устройств;
  • в cut-photo.ru есть только кадрирование по форме прямоугольника;
  • fotor.com позволяет обрезать по заданной пользователем форме, в том числе овалу. В редакторе есть возможность придать фотке формат для телефона — 2:3. Имеется опция золотого сечения;
  • imgonline.com.ua кадрирует фото, позволяет убрать или изменить фон;
  • cropper обрезает картинку по форме прямоугольника.

Как обрезать фото на компьютере без программ

Совсем без приложений изображения на компе обрезать невозможно.

Пожалуй, единственный способ:

  • открыть с помощью какого-либо просмотрщика нужную фотку;
  • задать масштаб, позволяющий видеть на экране только тот фрагмент, который требуется сохранить;
  • нажать принтскринт и затем вставить в письмо или сообщение.

В остальных случаях рекомендуется использовать фоторедакторы или приложения онлайн.

Выводы

Разработчики предлагают много приложений для изменения размера, формы фотографий. Фоторедакторы работают на телефонах, компьютерах. Многие из них — бесплатные.

Видеообзор

Обрезать фото онлайн бесплатно - Pixelbox.ru

Самостоятельно обрезать и отредактировать фотографию в онлайн-фотошопе – не сложно, если под рукой есть руководство. Соблюдая последовательность действий из размещенной на этой странице инструкции, с этой задачей можно справиться за несколько минут.

Сначала нужно зайти на сайт с фотошопом, работающем в режиме онлайн — https://pixlr.com/editor/. Далее загрузить в программу редактируемое изображение.

4 способа открыть фото:

  • создать рисунок;
  • загрузить фото с компьютера;
  • открыть URL изображения;
  • открыть рисунок из библиотеки.

открываем фото в фотошоп онлайн

Как обрезать фото онлайн бесплатно

Мы рассмотрим второй вариант – загрузка фото с компьютера (в англоязычной версии – «Open image from computer»). Изображение появляется в программе мгновенно, в нижней части отображается фактический размер фотографии. В нашем случае – 1920х1200 пикселей.

размер фотографии

Теперь можно переходить к выполнению задачи – вырезать котенка из фото.

Последовательность действий

  1. Слева расположена панель инструментов. Здесь нужно выбрать первый в ряду инструмент «Обрезка» («Crop Tool»), кликнув по соответствующей кнопке.
  2. Затем выделить котенка – появятся границы в виде белых квадратов.
  3. На концах рамки расположены маленькие голубые/синие квадраты – это маркеры, с помощью которых можно изменить ее размер. То есть при неудачной попытке выделить нужную область, маркеры можно потянуть и установить требуемые границы.

crop tool в фотошопе

При помещении курсора внутрь рамки он становится черным, рядом появляется крестик со стрелками.

crop tool 2 photoshop online

Если нажать левую кнопку мыши, можно менять положение рамки, но при этом изображение остается на месте. Это может понадобиться при неудачном положении рамки, когда ее не требуется увеличивать или уменьшать, а достаточно сдвинуть в нужном направлении.

как обрезать фото в фотошопе онлайн

Если границы установлены верно, можно вырезать изображение. Для этого нужно нажать Enter или щелкнуть в любом месте левой кнопкой мыши. Программа запросит подтверждение действий: «Да», «Нет», «Отмена». Выбираем первый вариант, получаем результат:

обрезаем фото онлайн

Обратите внимание, внизу указан новый размер изображения – 882х776 пикселей. Теперь его можно сохранять на компьютер.

Сохраняем фото

Последовательность действий такая же, как при сохранении любого файла: в меню выбрать «Файл» — «Сохранить» -подтвердить действие – выбрать путь (в какую папку отправить) – «

Сохранить».

Готово обрезанное фото теперь на компьютере, можно приступать к редактированию.

Специально для вас мы составили подборку из полезных курсов по изучению фотошоп

Вырезать участок фотографии по контуру

Обрезать изображение можно не только описанным выше способом, но и с помощью инструмента «Лассо».

Чтобы попрактиковаться на этом же рисунке, его можно вновь загрузить с компьютера, или воспользоваться меню «Редактировать», выбрав пункт «Отменить» — изображение приобретет первоначальный вид. В англоязычной версии это можно сделать с помощью палитры Histori —  нужно кликнуть по верхней строке.

Мы рассмотрим этот вариант с другим изображением.

Выберите инструмент «Лассо» (находится во втором ряду сверху, ближе к рабочей области).

выбираем инструмент лассо

Теперь нужно по контуру обвести яблоко, при этом не обязательно стараться сделать это максимально точно. Главное, не заходить на область изображения фрукта, а лишнее впоследствии можно будет убрать.

Получается примерно так:

как выделить участок на фото в фотошопе онлайн

Обратите внимание, область выделится движущейся линией после того, как замкнутся начало и конец контура.

Далее в меню «Редактировать» выбрать из выпадающего меню пункт «Инвертировать выделенное». Выделится вся область изображения.

инвертируем выделение

Вернитесь в меню «Редактировать» и кликните по пункту «Очистить». Получим вырезанный контур яблока на белом фоне.

удаляем лишнее на фото

Теперь с помощью инструмента «Ластик», расположенного на панели слева, можно убрать все лишнее.

Делать это нужно аккуратно, но если случайно стерта нужная область, всегда можно отметить действие через меню «Редактировать» — «Отменить».

вырезали участок на фото

В оффлайн версии фотошопа больше функций, поэтому там можно вырезать объект на фото намного качественнее.

В некоторых версиях онлайн-фотошопа для того, чтобы вырезать изображение по контуру с помощью «Лассо» можно пользоваться инструментом «Маска» — аналог слоя-маски программы Фотошоп.

Что нужно сделать, чтобы использовать маску:

  1. Найти справа в окне браузера палитру слоев и дважды кликнуть по замочку, чтобы его разблокировать.
  2. Далее нужно активировать маску слоя – кликнуть по соответствующей кнопке.
  3. Область изображения за пределами выделенного контура исчезает, остается серо-белая клетка, обозначающая прозрачность.
  4. Редактируется контур так же с помощью инструмента «Ластик».
  5. Без маски лучше не работать с ластиком, так как она позволяет отметить последнее действие, что важно, если случайно стерта нужная область.

Волшебная палочка

По сравнению с другими способами выделения инструмент «Волшебная палочка» в разы быстрее справляется с задачей. С ее помощью одним кликом выделяется достаточно большой участок области, который содержит близкие по оттенку пиксели. Это существенно ускоряет работу.

Создание выделенной области:

  1. Нажать на инструмент и кликнуть в любом месте области, которая будет выделяться.
  2. Переключиться на «Быстрое выделение» (на панели инструментов) и поправить контуры.

«Волшебной палочкой» удобно пользоваться, когда требуется выделение сложных участков изображений, где другие инструменты применять сложно из-за большого количества объектом маленького размера и углов (выделение неба над городом и так далее).

Как вырезать изображение и вставить на другой фон: быстрый способ

Эффектное преображение фото:
вырезаем объект и меняем фон своими руками

Сложно поверить, но теперь отделить объект от фона на фото можно буквально за два щелчка мыши. С программой «ФотоМАСТЕР» вы без труда выполните настоящий фотомонтаж и окажетесь рядом с Эйфелевой башней или любимым актёром. Читайте статью и узнайте, как вырезать изображение и вставить на другой фон, приложив минимум усилий.


Шаг №1. Откройте исходное фото

Предварительно нужно скачать программу для обработки фото и установить её. Софт не требователен к ресурсам системы и хорошо работает на всех версиях Windows. Установка не отнимет много времени – просто следуйте подсказкам: примите пользовательское соглашение и не забудьте разместить ярлык редактора на рабочем столе. Запустите программу и откройте фото, на котором собираетесь удалить фон.

открытие фото

Откройте нужный снимок в редакторе

Шаг №2. Выделите объект

Откройте вкладку «Инструменты» и найдите в списке функций «Замена фона». На данном этапе ваша главная задача – обозначить, где на снимке объект, а где – фон. Для этого потребуется «порисовать». Редактор предлагает две кисти:

  • «Объект» – зелёная линия для закраски предмета, который нужно оставить;
  • «Фон» – красная линия для обозначения областей для удаления/замены.

В других редакторах вам пришлось бы скрупулёзно обводить пиксели, тогда как вырезать изображение по контуру в «ФотоМАСТЕРЕ» можно в считанные секунды. Отрегулируйте размер и обведите фигуру зелёной кистью.

Если у предмета простая форма, достаточно провести внутри одну толстую линию. Если форма сложная, имеет углы, завитки, – уменьшите размер кисти, чтобы пройтись по «трудным» участкам.

выделение объекта на фото

Выделите объект и фон на фотографии

Ошибки и неточности вы сможете исправить с помощью «Ластика».

Шаг №3. Исправьте неточности

На основе сделанных обозначений программа проанализирует изображение и отделит объект от фона. Чтобы увидеть результат, уведите ползунок на шкале «Прозрачность фона» максимально влево.

как вырезать изображение и вставить на другой фон

Оцените результат

Если на фото остались недостатки, вроде случайно удалённых участков или, наоборот, лишнего фона, – исправьте их. Жмите «+», чтобы увеличить фотографию и работать с деталями. Используйте кисти «Объект» и «Фон» чтобы восстановить фрагменты фигуры или удалить ненужные участки соответственно. Отрегулируйте размер обводки и степень растушёвки. Пройдитесь по «неудачным» местам, пока не останетесь довольны результатом.

корректировка границ

Скорректируйте границы объекта

Шаг №4. Вставьте фон

Настройте контур объекта – вы можете сделать границы более чёткими или размытыми в зависимости от желаемого результата. После вам нужно будет определиться с новым фоном.

размытие границ

При необходимости размойте границы объекта

Если вы хотели узнать, как вырезать объект и оставить его без фона, воспользуйтесь опцией «Сохранить изображение с прозрачным фоном». «ФотоМАСТЕР» запишет фото в формате PNG, оставив в кадре только объект. В дальнейшем вы сможете легко накладывать его на другие снимки.

картинка без фона

Сохраните изображение с прозрачным фоном

Если нужно сделать фон однотонным, используйте варианты из строки «Цвет». Вы можете выбрать белый, серый, чёрный или любой другой оттенок в палитре. Вариант идеально подойдёт, если вы хотите разместить снимок в каталоге Интернет-магазина или оформить фото в анкету или резюме.

картинка на цветном фоне

Выберите новый цвет для фона

И, наконец, если вы хотите добавить на задний план другое фото, кликните «Выбрать изображение для фона». Программа предложит варианты на любой вкус – от живописных пейзажей до нейтральной кирпичной стены. Просто нажмите на понравившееся изображение – «ФотоМАСТЕР» автоматически подставит его под объект. Впрочем, редактор не ограничивает в выборе: нажмите кнопку «Загрузить» и добавьте любую другую картинку с компьютера.

замена фона для фото

Выберите новый фон для снимка

Объект не обязательно должен оставаться в исходном положении. Вы можете менять его размер и перемещать, чтобы композиция с новым фоном смотрелась целостной и интересной.

Шаг №5. Улучшите фото

После вы сможете сохранить изображение или продолжить совершенствование в программе. Уберите блики, если необходимо, добавьте сочных оттенков, контрастности для большей выразительности. Софт включает коллекцию фильтров, которые не только вмиг преобразят снимок, но и «сгладят» разницу между фоном и объектом.

замена фона для фото

Подберите эффект для фотографии

Теперь, когда вы знаете, как вырезать фрагмент из фото, ваши снимки всегда будут выразительными и цепляющими! Вы сможете свободно экспериментировать с любыми изображениями, а «ФотоМАСТЕР» поможет получать от процесса исключительно положительные эмоции. Скачайте редактор и начните преображать фотографии уже сейчас!

онлайн-инструмент для вырезания картинки из фона на базе технологий искусственного интеллекта / Хабр
Открывшийся недавно в режиме публичной альфы сайт Clippingmagic.com предназначен для решения всего одной задачи — удаления фона изображения, но зато делает он это весьма неплохо. В отличие от большинства подобных инструментов, он имеет удобный и простой интерфейс и при этом результат получается очень приличным. Пожалуй, лучше и аккуратнее можно сделать только в настоящем большом редакторе вроде Photoshop или Gimp, потратив при этом гораздо больше времени.

Алгоритм работы очень прост: загружаем картинку, выделяем зелёным объект, а красным — фон, затем несколькими штрихами исправляем оставшиеся огрехи. Весь процесс занимает буквально минуту-другую и не требует особой твёрдости руки. Изображение можно масштабировать, при этом размер кисти не меняется, позволяя обработать мелкие детали. Результат можно сохранить в формате PNG.

Пока что сервис полностью бесплатен, однако по окончанию альфа-тестирования скорее всего станет работать на платной основе. Неизвестно, останется ли в будущем бесплатный вариант, и насколько сильно его возможности будут отличаться от платного.

Сайт Clipping magic создала компания Vector Magic, которая специализируется на векторизации растровых изображений. Векторизовать картинки можно онлайн, с помощью десктопного приложения или даже заказав отрисовку профессиональному художнику. Услугами Vector Magic пользуются такие компании, как Disney, Warner Brothers, Viacom. По-видимому, именно благодаря серьёзному опыту работы с изображениями программистам компании удалось добиться такого качества обработки с минимумом усилий со стороны пользователя.

В основе технологий, которые использует Vector Magic, лежат разработки Стэнфордского университета в области искусственного интеллекта и распознавания образов. Среди инвесторов Vector Magic — Себастьян Трун, один из ведущих разработчиков автономных автомобилей и пионер онлайн-обучения, проводивший совместно с Питером Норвигом один из первых по-настоящему массовых онлайн-курсов по искусственному интеллекту и машинному обучению.

Как в paint обрезать изображение по контуру или диагонали

На чтение 3 мин. Просмотров 4.4k. Опубликовано

Приветствую вас, милые друзья! Услышав про paint – стандартный для windows графический редактор, многие кривят лицо и презрительно говорят, что эта программа неудобна, имеет мало функций, не подходит для серьезной обработки фотографий. Однако все не так просто. Приложение помогает быстро справиться с большим количеством задач, одна из которых – обрезка фото. О том, как изменить размер изображения – наша статья. 

Как в паинт выполнить кадрирование картинки по кругу или овалом

С помощью стандартного приложения paint можно обрезать фотографию в форме прямоугольника.

Как в паинте обрезать фото по кругу

Для этого:

  • на панели управления выберите инструмент «Выделить» и следом «прямоугольную область»;
  • укажите границы кадрируемого изображения;
  • найдите инструмент «Обрезать» и нажмите на него. Все части, которые окажутся за проведенной линией, будут отрезаны, на экране останется только фигура нужной формы.

К сожалению, разработчики не предусмотрели возможность кадрирования рисунков по кругу или овалу.

Добиться нужной формы, имея только родной для windows редактор, можно с помощью произвольной обрезки:

  • в опции «выделить» выберите «произвольную область»;
  • аккуратно прорисуйте круг или овал;
  • проверьте, нет ли погрешностей;
  • нажмите «обрезать». Обрезанное фото будет иметь искомую форму.

Чтобы фигура получилась более ровной, рекомендуем:

  • выбрать овал на панели управления;
  • разместить его в соответствии с воображаемыми границами, в рамках которых должен остаться рисунок;
  • придать контуру нужную форму и размер;
  • нажать на выделение произвольной области и аккуратно обвести контур.

Чтобы избежать попадания контурной линии в картинку, выберите для ее рисования самую тонкую линию.

Дополнительный вариант обрезки — установка на компьютер редактора Paint.net. Приложение – бесплатное. Предлагает пользователям готовый инструмент кадрирования по овалу или кругу. Достаточно нажать на «Выбор области овальной формы» и потом «Обрезать по выделению».

Как в paint обрезать изображение по контуру или по диагонали

Для кадрирования иллюстрации по любому другому контуру, кроме овала, нужно также воспользоваться инструментом «фигуры».

Как обрезать фото в paint 3х4

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

Если ни одна из опций, представленных в paint, не соответствует вашим пожеланиям, попробуйте сами нарисовать нужный контур. Второй вариант — создайте модель формы в другом графическом редакторе, вставьте его в ваше изображение в paint, и выделением откадрируйте снимок по границам.

Фотки можно не только обрезать по контуру, но и придавать им определенный размер.

Для этого:

  • нажмите на инструмент «Изменить размер»;
  • в поле «изменить» выберите пиксели;
  • укажите 3000 по вертикали. По горизонтали, при условии, что у вас стоит галочка на опции «Сохранить пропорции», установится пропорциональное значение. Оно может не соответствовать искомой величине в 4000 пикселей. Для соответствия проведите дополнительную обрезку лишних пикселей, подобрав нужный размер методом проб и ошибок.

Если вы вручную проставите значения ширины и высоты без сохранения пропорций, рисунок может получиться непропорционально вытянутым или приплюснутым.

Для обрезки по диагонали выберите фигуру треугольник. Она позволит сформировать четкие линии. Одна часть рисунка останется на экране, вторая обрежется.

Выводы

Пайнт позволяет кадрировать фотографии по произвольному и прямоугольному контуру. В первом случае пользователи могут воспользоваться различными фигурами для обрезки картинки по их границе. Придать рисунку форму круга или овала можно с помощью программы paint.net.

Видеообзор

Как в ворд обрезать фото по контуру, кругу, произвольно

На чтение 2 мин. Просмотров 2k. Опубликовано

Добрый день, дорогие читатели! Чтобы подкорректировать фотографии, используемые в документах word, необязательно иметь приложения для работы с графикой. Кадрировать рисунки можно непосредственно в текстовом редакторе. Причем можно добиться изменения как одной-единственной фотографии, так и сразу нескольких.  

Где в ворде обрезка рисунка

Функция стандартного кадрирования находится на панели управления ворда. Найти ее там можно в версии 2007, 2010 и новее. В приложении версии 2003 инструмент находится в «Настройке изображений».

Где в ворде обрезка рисунка

Бессмысленно искать функцию кадрирования изображения в microsoft word, если у вас не выделен рисунок. Но стоит нажать на картинку, вставленную в документ, как на панели появится вкладка «Формат». Именно здесь находится инструмент, позволяющий изменять размер фотографии, убирать ее части.

Как обрезать изображение в Microsoft Word

Приложение предоставляет несколько видов изменения формы и размера фоток. Самый простой способ — обрезать фотографию, вручную устанавливая ее размеры.

Как в ворде обрезать рисунок по контуру

Среди других способов кадрирования:

  • по контуру (фигуре). Иллюстрации можно придать форму звезды, треугольника, круга, стрелки, даже смеющегося личика;
  • по размеру. Устанавливается ширина и высота. Указываются параметры в конкретных значениях;
  • по пропорции. Существует обрезка по форме квадрата, несколько вариантов книжного и альбомного кадрирования.

Сам процесс изменения картинки включает следующие действия:

  • откройте вкладку «Формат» — при выделении рисунка в майкрософт ворд 2013, 2016 появится опция «Работа с изображениями»;
  • нажмите на опцию «Обрезка» в крайней правой части панели управления;
  • выберите тип кадрирования;
  • наведите курсор на нужный маркер и, удерживая левую клавишу мышки, переместите его в искомую точку. Повторите изменения с других сторон и углов.

Что за макрос позволяет обрезать рисунок в майкрософт ворд

Родной инструмент кадрирования изменяет только одно изображение.

Обрезка изображения в ворде

Встроенная функция применима только к одной фотке. Если в документе есть несколько картинок, которым нужно придать единый формат, удобнее установить или написать специальный макрос.

Один из вариантов — готовый vba макрос. С его помощью задается ширина или высота всех картинок в документе или только в выделенной зоне. Найти его можно в интернете.

При необходимости можно создать свой собственный набор команд, настроить горячие клавиши и использовать при необходимости.

Выводы

Ворд позволяет кадрировать изображения, вставленные в текстовый документ. Без установки специальных макросов обрезать можно только по одному отдельному рисунку. С помощью макроса кадрируются сразу несколько снимков.

Видеообзор

Ещё один онлайн сервис вырезки фотографии по контуру — Дидактор

Совсем недавно я сообщал, как можно вырезать по контуру фотографию с помощью сервиса Remove.BG. Между тем есть ещё один любопытный бесплатный инструмент с бóльшими возможностями.

PhotoScissors позволяет Вам удалить фон из любого изображения, то есть работать не только  с изображением человека, как в предыдущем сервисе.

Алгоритм работы с PhotoScissors весьма прост. Вы открываете сервис без регистрации.

Пользуетесь двумя маркерами.

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

В ней имеются и другие инструменты: увеличения или уменьшения обрабытываемого изображения, перетаскивания его по столу. И, прежде всего, это ластик, для того, чтобы поправить некоторые области. Все изменения вы сразу же увидите на правом изображении.

Обратите внимание на инструменты вверху справа, которые помогут вам работать со слоями. Вы можете

  • оставить новое изображение прозрачным,
  • подобрать другой цвет фона из коллекции Solid Color.
  • можете вставить одним щелчком другое изображение в качестве фона.

Для выполнения третьего варианта достаточно найти изображение для фона у себя на компьютере. Смотрим.

Полученное изображение сохраняете у себя на компьютере.

PhotoScissors поможет вам и вашим ученикам при оформлении презентаций, коллажей, получения новых по содержанию изображений.

 

 

 

Как обрезать, выпрямить и открыть несколько отсканированных фотографий
Crop Straighten Scanned Photos Photoshop Crop Straighten Scanned Photos Photoshop

Автор Стив Паттерсон.

Одна из вещей, которые я люблю делать в свободное время, - оцифровывать старые фотографии, сканировать их на свой компьютер, чтобы я мог ретушировать их в Photoshop, затем распечатывать вновь восстановленные версии или просто сохранять их на CD или DVD для сохранности. Конечно, без недостатка старых фотографий и серьезной нехватки свободного времени сканирование, обрезка и выпрямление каждого изображения может занять слишком много времени.

К счастью, в этом нет необходимости благодаря удивительной функции, впервые появившейся в Photoshop CS, команде Crop and Straighten Photos . С его помощью мы можем сканировать несколько изображений одновременно с помощью нашего планшетного сканера, а затем позволить Photoshop автоматически обрезать их, выпрямить их и открыть для нас каждую фотографию в отдельном документе, и все это за считанные секунды!

Вот как это работает. Во-первых, поместите на сканер столько фотографий, сколько вам нужно (или, по крайней мере, столько, сколько вы можете уместить), не забывая оставлять свободное место вокруг каждой из них.Photoshop не способен на самом деле сканировать изображения, поэтому для сканирования фотографий вам понадобится либо программное обеспечение, поставляемое с вашим сканером, либо сторонняя программа, такая как VueScan или SilverFast. Сохраните файл в формате TIFF для наилучшего качества изображения, затем откройте его в Photoshop.

Загрузите это руководство в формате PDF для печати!

Вот мой файл после сканирования четырех изображений одновременно. Обратите внимание, что я не прикладывал усилий к тому, чтобы убедиться, что изображения правильно расположены на сканере (все они кривые).Единственное, в чем я убедился, это то, что ни одна из фотографий не накладывалась друг на друга, в противном случае Photoshop столкнулся бы с проблемами при попытке их разделить:

Four old photos scanned at once. Image © 2010 Photoshop Essentials.com. Four old photos scanned at once. Image © 2010 Photoshop Essentials.com.

Убедитесь, что вы оставляете пространство между каждой фотографией при сканировании, чтобы они не перекрывались.

На этом этапе все четыре фотографии являются частью одного большего изображения, но мне нужно, чтобы они были разделены на отдельные документы. Я мог бы разделить их вручную, рисуя выделения вокруг каждого изображения, копируя каждое из них на свой слой и создавая новые документы из отдельных слоев, но тогда мне все равно нужно было бы обрезать и выравнивать каждый из них самому, и я уже получаю скучно просто думать об этом.Лучший способ - позволить Photoshop автоматически выполнять всю эту работу за меня!

Для этого перейдите в меню Файл в строке меню в верхней части экрана, выберите Автоматизировать , а затем выберите Обрезать и Выпрямить фотографии :

Selecting the Crop and Straighten Photos command in Photoshop. Image © 2010 Photoshop Essentials.com. Selecting the Crop and Straighten Photos command in Photoshop. Image © 2010 Photoshop Essentials.com.

Выберите «Файл»> «Автоматизировать»> «Обрезать и выпрямить фотографии».

Вот и все, что нужно сделать, и в течение нескольких секунд Photoshop проверяет файл, делает копию каждой фотографии, открывает каждую в своем собственном окне документа и делает все возможное, чтобы обрезать и выпрямить каждое изображение, и все без усилий от нас:

All four photos have been cropped, straightened and opened in separate document windows. Image © 2010 Photoshop Essentials.com. All four photos have been cropped, straightened and opened in separate document windows. Image © 2010 Photoshop Essentials.com.

Все четыре фотографии были обрезаны, выровнены и открыты в отдельных окнах документов.

Для команды, которая полностью работает с автопилотом, Photoshop проделал замечательную работу по отделению каждого изображения от исходного сканирования. Он одинаково хорошо справился с обрезкой и выпрямлением их? По большей части, да, хотя, если мы посмотрим на это изображение, мы увидим, что оно все еще немного кривое:

One of the photos is still crooked. Image © 2010 Photoshop Essentials.com. One of the photos is still crooked. Image © 2010 Photoshop Essentials.com.

Команда «Кадрировать и выпрямить фотографии» не всегда дает правильные результаты.

Несмотря на свою мощную и впечатляющую силу, команда «Кадрировать и выпрямить фотографии» все еще оставляет за собой небольшую проблему, подобную этой.Чтобы исправить это, просто обрежьте и выровняйте фотографию вручную с помощью Photoshop Crop Tool . Сначала выберите инструмент Crop Tool на панели «Инструменты»:

The Crop Tool in Photoshop. Image © 2010 Photoshop Essentials.com. The Crop Tool in Photoshop. Image © 2010 Photoshop Essentials.com.

Выберите инструмент Crop.

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

Dragging out a crop border with the Crop Tool in Photoshop. Image © 2010 Photoshop Essentials.com. Dragging out a crop border with the Crop Tool in Photoshop. Image © 2010 Photoshop Essentials.com.

Перетащите границу обрезки вокруг области, которую вы хотите сохранить.Поверните границу, чтобы выровнять изображение.

Нажмите Введите (победа) / Возврат (Mac), когда вы закончите, чтобы обрезать и выпрямить изображение:

The image has been cropped and straightened. Image © 2010 Photoshop Essentials.com. The image has been cropped and straightened. Image © 2010 Photoshop Essentials.com.

Используйте инструмент «Кадрирование», чтобы быстро исправить любые проблемы, оставленные командой «Кадрировать и выпрямить фотографии».

И вот оно у нас! Вот так можно обрезать, распрямить и открыть несколько отсканированных фотографий в Photoshop! Посетите наш раздел «Фото-ретуширование», чтобы узнать больше о Photoshop!


,
Использование распознавания образов для автоматического кадрирования в рамке Art

Введение

Музей искусств Индианаполиса (IMA) недавно поделился с Арчи тысячами изображений высокого разрешения из своей постоянной коллекции, включая 5000 изображений, которые были в необрезанном состоянии. Эти изображения содержат образцы цветов, рамки и разнообразный фон, как показано ниже. Беспорядок в этих изображениях сделал их неприемлемыми для отображения конечным пользователям, и предложил подход для автоматической обрезки изображений.Этот пост исследует некоторые полностью автоматизированные методы, чтобы найти произведение искусства на каждой фотографии. Если вы хотите сразу перейти к коду, который работал лучше всего, вы найдете здесь реализацию раздела «Поиск прямоугольного контура».

All of these images are open access. For reference, the accession numbers/names. 45-115.tif 45-9-v01.tif 54-4.tif 76-166-1-12b.tif 14-57.tif

Некоторые образцы из набора данных изображений IMA. Жирная зеленая форма указывает на лучший выбор для обрезки, а тонкие желтые формы - на альтернативные.

Наша конкретная цель в рамках этого проекта состояла в том, чтобы найти прямоугольник, который наилучшим образом содержит иллюстрации на каждой фотографии.Нам нужна программа, которая находит прямоугольник достаточно маленький, чтобы исключить фон, образцы цветов и (предпочтительно) рамки на изображениях. В то же время мы хотим избежать обрезки изображения и исключить края изображения, даже если оно содержит области плоского цвета, похожие на фон. Мы всегда ищем прямоугольник, который содержит художественные работы, поэтому мы должны позаботиться и не отвлекаться на геометрические работы, такие как работы Джозефа Альберса.

Варианты обрезки в картине Джозефа Альберса.Copyright Фонд Джозефа и Анни Альберс / Общество прав художников (ARS), Нью-Йорк

Фон

Ниже приводится краткое изложение некоторых полезных базовых знаний для интерпретации выходных данных общих преобразований изображений. Включены соответствующие команды в python, которые опираются на библиотеку OpenCV, которую мы использовали в этом проекте.

Blur Преобразования

Gaussian Blur

Гауссово сглаживание - это метод снижения шума на изображении путем усреднения каждого пикселя с окружающими его пикселями.Чтобы выполнить сглаживание по Гауссу, изображение является свернутым с квадратной матрицей фильтра (с нечетным числом измерений для обеспечения симметрии), чьи значения ( весов ) определяются распределением Гаусса с некоторым стандартным отклонением \ (\ sigma \). Матрица фильтра также называется ядром в контексте свертки. Ниже показано ядро ​​\ (3 \ times3 \) с \ (\ sigma \) 0:

$$ \ frac {1} {16} \ begin {bmatrix} 1 & 2 & 1 \\\ 2 и 4 и 2 \\\ 1 & 2 & 1 \ end {bmatrix} $$

Свертка - это метод умножения матриц, обычно используемый при обработке изображений.Интерпретация свертки заключается в том, что это метод разложения одной матрицы (выходной матрицы) на сумму сдвинутых и масштабированных импульсных функций (входная матрица, свернутая с ядром). Механизм свертки выходит за рамки этого поста, и его можно найти здесь и описать здесь в более общем виде.

Предполагаемый эффект размытия по Гауссу для наших целей состоит в нарушении более мелких границ и краев, чем более крупных.

 1
2
3
 
  размытие = cv2.GaussianBlur (src = bw, ksize = (3,3), сигма = 0)
# чтобы увидеть матрицу фильтра 3 на 3, с которой свернуто изображение bw:
cv2.getGaussianKernel (ksize = 3, sigma = 0) * cv2.getGaussianKernel (3, 0) .T
  
Median Blur Filter

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

 1
2
 
  # использует медиану в окрестности 7 на 7 для переназначения каждого пикселя
cv2.medianBlur (img, ksize = 7)
  

Края

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

Sobel Filter

Фильтр Собель является приближением к градиенту первого порядка изображения. Используя две ортогональные \ (3 \ times3 \) матрицы свертки, каждая из которых аппроксимирует частную производную изображения (в направлениях x и y), можно объединить результаты двух сверток для аппроксимации градиента изображения. Два соответствующих ядра для аппроксимации величин градиента направления x и y:

$$ \ begin {bmatrix} 1 & 2 & 1 \\\ 0 & 0 & 0 \\\ -1 & -2 & -1 \ end {bmatrix} \ и\ \ begin {bmatrix} 1 & 0 & 1 \\\ 2 & 0 & 2 \\\ 1 & 0 & 1 \ end {bmatrix} $$

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

 1
2
3
4
5
6
7
 
  # использует два вышеуказанных частных производных
sobelx = cv2.Sobel (bw, cv2.CV_16S, 1, 0, ksize = 3)
sobely = cv2.Sobel (bw, cv2.CV_16S, 0, 1, ksize = 3)
abs_gradientx = cv2.convertScaleAbs (sobelx)
abs_gradienty = cv2.convertScaleAbs (sobely)
# объединить два в равных пропорциях
total_gradient = cv2.addWeighted (abs_gradientx, 0,5, abs_gradienty, 0,5, 0)
  
Canny Edges

Детектор края Canny - это многоступенчатый процесс, который объединяет градиенты первого и второго порядка таким образом, чтобы оптимизировать:

  1. Обнаружение - пропущено несколько ребер (благодаря чувствительности градиента 2-го порядка)
  2. Локализация - точность обнаруженных ребер (благодаря точности градиента 2-го порядка)
  3. Отдельных ответов - 1 ребро обнаружено на реальном ребре (благодаря подавлению не максимальных значений)

Полное описание этой техники можно найти здесь.Аспект, который нас здесь интересует, - это использование гистерезисного порога , который помогает непрерывности краев. Это процесс, в котором для обеспечения непрерывности контуров ребер градиент первого порядка берется через два порога и затем рекомбинируется. Высокий порог используется для точного нахождения краевых точек, а затем низкий порог для соединения краевых точек друг с другом.

 1
2
 
  # аргумент apertureSize - размер фильтра для аппроксимации производной
CV2.Canny (bw, threshold1 = 0, threshold2 = 50, apertureSize = 3)
  
Hough Lines

Преобразование Хафа пытается найти линии на изображении, которые можно объяснить линейным уравнением \ (y = mx + b \). Более удобный способ выражения этого уравнения на плоскости изображения - с помощью: \ (d = xcos (\ theta) + ysin (\ theta) \), где точка \ ((x, y) \) объясняется нормальным расстоянием от начала координат до линии (\ (d \)) и угла между этой нормальной линией и осью x (\ (\ theta \)).{n} \) норма.

Поворот изображений (правильно) с OpenCV и Python

opencv_rotated_header

Позвольте мне рассказать вам неловкую историю о , как я потратил за три недели исследования в аспирантуре шесть лет назад.

Это был конец моего второго семестра курсовой работы.

Я сдал все свои экзамены рано, и все мои проекты на семестр были представлены.

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

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

После первой недели я добился фантастических успехов.

Мне удалось извлечь компоненты из моего набора таблеток, проиндексировать их, а затем идентифицировать моего тестового набора таблеток независимо от их ориентации…

… однако возникла проблема:

Мой метод работал только с круглыми, круглыми таблетками - я получил совершенно бессмысленные результаты для продолговатых таблеток.

Как это могло быть?

Я ломал голову для объяснения.

Был ли недостаток в логике моего алгоритма извлечения признаков?

Я не соответствовал функциям правильно?

Или это было что-то совсем другое… как проблема с моей предварительной обработкой изображения.

Хотя мне было бы стыдно признать это как аспирант, проблема была в следующем:

Я обманываю.

Оказывается, что на этапе предварительной обработки изображений я неправильно вращал свои изображения.

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

Figure 1: Rotating a circular pill doesn Рисунок 1: Вращение круглой таблетки не выявляет никаких очевидных проблем.

Но для продолговатых таблеток они будут «обрезаны» в процессе вращения, например:

Figure 2: However, rotating oblong pills using the OpenCV Рисунок 2: Тем не менее, вращение продолговатых таблеток с использованием стандарта OpenCV cv2.Функции getRotationMatrix2D и cv2.warpAffine вызвали у меня некоторые проблемы, которые не были сразу очевидны.

В сущности, я измерял только часть повернутых продолговатых таблеток; отсюда и мои странные результаты.

Я провел три недели, и часть моих рождественских каникул. стучал головой об стену, пытаясь диагностировать ошибку - только чтобы почувствовать себя довольно смущенным, когда понял, что это из-за моей небрежности с cv2.поверните функции.

Видите ли, размер выходного изображения должен быть настроен на , , иначе углы моего изображения будут обрезаны.

Как я справился с этим и навсегда исправил ошибку?

Чтобы узнать, как вращать изображения с помощью OpenCV таким образом, чтобы в них было включено все изображений и , ни один из изображений не был обрезан, просто продолжайте читать.

Поворот изображений (правильно) с помощью OpenCV и Python

В оставшейся части этого блога я расскажу об общих проблемах, с которыми вы можете столкнуться при повороте изображений с помощью OpenCV и Python.

В частности, мы рассмотрим проблему того, что происходит, когда углы изображения «обрезаются» в процессе поворота.

Чтобы убедиться, что мы все понимаем эту проблему ротации с OpenCV и Python, я сделаю следующее:

  • Начните с простого примера, демонстрирующего проблему вращения.
  • Обеспечивают функцию поворота, которая гарантирует, что изображения не будут обрезаны в процессе поворота.
  • Обсудите, как я решил проблему с идентификацией таблеток, используя этот метод.

Простая проблема вращения с OpenCV

Давайте начнем этот пост с примера сценария.

Откройте новый файл, назовите его rotate_simple.py и вставьте следующий код:

 # импортировать необходимые пакеты
импортировать numpy как np
импорт argparse
импорт imutils
импорт cv2

# построить аргумент parse и разобрать аргументы
ap = argparse.ArgumentParser ()
ap.add_argument ("- i", "--image", обязательный = True,
help = "путь к файлу изображения")
args = vars (ap.parse_args ())
 

Строки 2-5 начинаются с импорта необходимых пакетов Python.

Если у вас еще нет imutils, моя серия удобных функций OpenCV установлена, вам нужно сделать это сейчас:

 $ pip install imutils
 

Если у вас уже , установлено imutils , убедитесь, что вы обновили до последней версии:

 $ pip install --upgrade imutils
 

Оттуда строк 8-10 анализируют аргументы нашей командной строки.Здесь нам нужен только один переключатель, - изображение , это путь к тому месту, где находится наш образ на диске.

Давайте перейдем к фактическому повороту нашего изображения:

 # загрузить изображение с диска
image = cv2.imread (args ["image"])

# цикл по углам поворота
для угла в np.arange (0, 360, 15):
rotated = imutils.rotate (изображение, угол)
cv2.imshow ("Повернуто (проблемно)", повернуто)
cv2.waitKey (0)

# снова обведите углы поворота, на этот раз
# ни одна часть изображения не обрезана
для угла в нп.arange (0, 360, 15):
rotated = imutils.rotate_bound (изображение, угол)
cv2.imshow ("Повернуто (правильно)", повернуто)
cv2.waitKey (0)
 

Строка 14 загружает изображение, которое мы хотим повернуть с диска.

Затем мы зациклимся под различными углами в диапазоне [0, 360] с шагом 15 градусов (, строка 17, ).

Для каждого из этих углов мы называем imutils.rotate , который поворачивает наше изображение на на указанное число углов на градусов относительно центра изображения.Затем мы отображаем повернутое изображение на нашем экране.

Строки 24-27 выполняют идентичный процесс, но на этот раз мы вызываем imutils.rotate_bound (о реализации этой функции я расскажу в следующем разделе).

Как следует из названия этого метода, мы собираемся убедиться, что все изображение связано внутри окна и ни одно из них не обрезано.

Чтобы увидеть этот скрипт в действии, обязательно загрузите исходный код, используя «Загрузки» , раздел этого поста, а затем выполните следующую команду:

 $ python rotate_simple.py --image images / saratoga.jpg
 

Результат использования функции imutils.rotate для неквадратного изображения можно увидеть ниже:

Figure 3: An example of corners being cut off when rotating an image using OpenCV and Python. Рисунок 3: Пример обрезания углов при повороте изображения с использованием OpenCV и Python.

Как вы видите, изображение «обрезается» при повороте - все изображение не сохраняется в поле зрения.

Но если мы используем imutils.rotate_bound , мы можем решить эту проблему:

Figure 4: We can ensure the entire image is kept in the field of view by modifying the matrix returned by cv2.getRotationMatrix2D. Рисунок 4: Мы можем обеспечить сохранение всего изображения в поле зрения, изменив матрицу, возвращаемую cv2.getRotationMatrix2D .

Отлично, мы исправили проблему!

Значит ли это, что всегда должны использовать .rotate_bound вместо метода .rotate ?

Что делает его таким особенным?

А что происходит под капотом?

Я отвечу на эти вопросы в следующем разделе.

Реализация функции поворота, которая не обрезает ваши изображения

Позвольте мне начать с того, что ничего не значит с cv2.Функции getRotationMatrix2D и cv2.warpAffine , которые используются для поворота изображений внутри OpenCV.

На самом деле, эти функции дают нам больше свободы, чем, возможно, нам удобно (вроде как сравнение ручного управления памятью с C и автоматического сбора мусора с Java).

Функция cv2.getRotationMatrix2D не заботится о , если мы хотим сохранить все повернутое изображение.

не заботит , если изображение обрезано.

И не помогут вам , если вы застрелились в ногу при использовании этой функции (я нашел это нелегко, и потребовалось 3 недели, чтобы остановить кровотечение).

Вместо этого вам нужно понять, что такое матрица вращения, а - как построить .

Видите ли, когда вы поворачиваете изображение с помощью OpenCV, вы вызываете cv2.getRotationMatrix2D , который возвращает матрицу M , которая выглядит примерно так:

Figure 5: The structure of the matrix M returned by cv2.getRotationMatrix2D. Рисунок 5: Структура матрицы M , возвращенная cv2.getRotationMatrix2D .

Эта матрица выглядит страшно, но я обещаю вам: это не так.

Чтобы понять это, давайте предположим, что мы хотим повернуть наше изображение на \theta градуса относительно некоторого центра (c_{x}, c_{y}) координат в некотором масштабе (то есть, меньше или больше).

Затем мы можем вставить значения для \alpha и \beta:

\alpha = scale * cos \theta и \beta = scale * sin \theta

Это хорошо для простого поворота, но он не учитывает, что происходит, если изображение обрезается по границам.Как мы можем исправить это?

Ответ находится внутри функции rotate_bound для удобства. Imutils:

 def rotate_bound (изображение, угол):
    # захватить размеры изображения, а затем определить
    # центр
    (h, w) = image.shape [: 2]
    (cX, cY) = (w // 2, h // 2)

    # захватить матрицу вращения (применяя минус
    # угол поворота по часовой стрелке), затем захватите синус и косинус
    # (то есть, компоненты вращения матрицы)
    M = cv2.getRotationMatrix2D ((cX, cY), -angle, 1.0)
    cos = np.abs (M [0, 0])
    sin = np.abs (M [0, 1])

    # вычислить новые ограничивающие размеры изображения
    nW = int ((h * sin) + (w * cos))
    nH = int ((h * cos) + (w * sin))

    # настроить матрицу вращения, чтобы учесть перевод
    M [0, 2] + = (nW / 2) - cX
    M [1, 2] + = (нН / 2) - сГ

    # выполнить фактическое вращение и вернуть изображение
    return cv2.warpAffine (изображение, M, (nW, nH))
 

В строке 410009 мы определяем нашу функцию rotate_bound .

Этот метод принимает входное изображение и угол для его поворота.

Мы предполагаем, что будем вращать изображение вокруг его центра с координатами (x, y) , поэтому мы определяем эти значения в строках 44 и 45 .

Учитывая эти координаты, мы можем вызвать cv2.getRotationMatrix2D , чтобы получить нашу матрицу вращения M ( Line 50 ).

Однако, чтобы скорректировать любые проблемы с обрезкой границ изображения, нам нужно применить некоторые собственные ручные вычисления.

Мы начинаем с получения значений косинуса и синуса из нашей матрицы вращения M (, строки 51 и 52 ).

Это позволяет нам вычислить новую ширину и высоту повернутого изображения, гарантируя, что ни одна часть изображения не будет обрезана.

Как только мы узнаем новые ширину и высоту, мы можем отрегулировать перевод по строкам 59 и 60 , изменив нашу матрицу вращения еще раз.

Наконец, cv2.warpAffine вызывается по Line 63 , чтобы повернуть реальное изображение с помощью OpenCV, гарантируя, что ни одно из изображений не будет обрезано.

Для некоторых других интересных решений (некоторые лучше, чем другие) проблемы отсечки вращения при использовании OpenCV, обязательно обратитесь к этой теме StackOverflow и этой.

Исправление проблемы с обрезкой повернутого изображения в OpenCV и Python

Давайте вернемся к моей первоначальной проблеме с вращением продолговатых таблеток и к тому, как я использовал .rotate_bound для решения этой проблемы (хотя тогда я не создавал пакет Python imutils - это была просто служебная функция в файле помощника) ,

Мы будем использовать следующую таблетку в качестве примера:

Figure 6: The example oblong pill we will be rotating with OpenCV. Рисунок 6: Пример продолговатой таблетки, которую мы будем вращать с помощью OpenCV.

Для начала откройте новый файл и назовите его rotate_pills.py . Затем введите следующий код:

 # импортировать необходимые пакеты
импортировать numpy как np
импорт argparse
импорт imutils
импорт cv2

# построить аргумент parse и разобрать аргументы
ap = argparse.ArgumentParser ()
ap.add_argument ("- i", "--image", обязательный = True,
help = "путь к файлу изображения")
args = vars (ap.parse_args ())
 

Строки 2-5 импортируют наши необходимые пакеты Python. Снова убедитесь, что вы установили и / или обновили пакет Python imutils, прежде чем продолжить.

Затем мы анализируем наши аргументы командной строки на Строки 8-11 . Как и в примере в начале поста в блоге, нам нужен только один переключатель: - изображение , путь к нашему входному изображению.

Затем мы загружаем изображение нашей таблетки с диска и предварительно обрабатываем его, преобразовывая его в оттенки серого, размывая его и обнаруживая края:

 # загрузить изображение с диска, преобразовать его в оттенки серого, смазать его,
# и применить обнаружение края, чтобы показать контур таблетки
изображение = cv2.imread (арг [ "образ"])
серый = cv2.cvtColor (изображение, cv2.COLOR_BGR2GRAY)
серый = cv2.GaussianBlur (серый, (3, 3), 0)
edged = cv2.Canny (серый, 20, 100)
 

После выполнения этих функций предварительной обработки наше изображение таблетки теперь выглядит так:

Figure 7: Detecting edges in the pill. Рисунок 7: Обнаружение краев в таблетке.

Контур таблетки четко виден, поэтому давайте применим обнаружение контуров, чтобы найти контур таблетки:

 # найти контуры на карте ребер
cnts = cv2.findContours (обрезной.copy (), cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)
cnts = imutils.grab_contours (cnts)
 

Теперь мы готовы извлечь ROI для таблеток из изображения:

 # убедитесь, что был найден хотя бы один контур
если len (cnts)> 0:
# возьмите самый большой контур, затем нарисуйте маску для таблетки
c = max (cnts, key = cv2.contourArea)
mask = np.zeros (gray.shape, dtype = "uint8")
cv2.drawContours (маска, [c], -1, 255, -1)

# вычислить ограничивающую рамку таблетки, затем извлечь ROI,
# и применить маску
(x, y, w, h) = cv2.boundingRect (с)
imageROI = изображение [y: y + h, x: x + w]
maskROI = маска [y: y + h, x: x + w]
imageROI = cv2.bitwise_and (imageROI, imageROI,
Маска = maskROI)
 

Во-первых, мы гарантируем, что по крайней мере один контур был найден на карте ребер ( Строка 26 ).

При условии, что у нас есть хотя бы один контур, мы строим маску для самой большой области контура в строках 29 и 30 .

Наша маска выглядит так:

Figure 8: The mask representing the entire pill region in the image. Рисунок 8: Маска, представляющая всю область таблеток на изображении.

Учитывая область контура, мы можем вычислить (x, y) -координат ограничительной рамки области ( Линия 34 ).

Используя ограничивающую рамку и маску , мы можем извлечь фактическую рентабельность инвестиций в области таблеток ( Линии 35-38 ).

Теперь давайте продолжим и применим функции imutils.rotate и imutils.rotate_bound к imageROI , как мы это делали в простых примерах выше:

 # петля по углам поворота
для угла в нп.arange (0, 360, 15):
rotated = imutils.rotate (imageROI, угол)
cv2.imshow ("Повернуто (проблемно)", повернуто)
cv2.waitKey (0)

# снова обведите угол поворота, на этот раз убедитесь, что
# вся таблетка все еще находится в ROI после ротации
для угла в np.arange (0, 360, 15):
rotated = imutils.rotate_bound (imageROI, угол)
cv2.imshow ("Повернуто (правильно)", повернуто)
cv2.waitKey (0)
 

После загрузки исходного кода в этот учебник с использованием раздела «Загрузки» , приведенного ниже, вы можете выполнить следующую команду, чтобы просмотреть вывод:

 $ python rotate_pills.py --image images / pill_01.png
 

Выход imutils.rotate будет выглядеть так:

Figure 9: Incorrectly rotating an image with OpenCV causes parts of the image to be cut off. Рисунок 9: Неправильный поворот изображения с помощью OpenCV приводит к обрезанию частей изображения.

Обратите внимание, как таблетка обрезается во время процесса вращения - нам нужно явно вычислить новые размеры повернутого изображения, чтобы убедиться, что границы не обрезаны.

Используя imutils.rotate_bound , мы можем гарантировать, что ни одна часть изображения не будет обрезана при использовании OpenCV:

Figure 10: By modifying OpenCV Рисунок 10: Изменяя матрицу вращения OpenCV, мы можем решить эту проблему и убедиться, что все изображение видно.

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

Резюме

В сегодняшнем блоге я рассказал о том, как можно обрезать границы изображений при повороте изображений с OpenCV и cv2.warpAffine .

Тот факт, что границы изображения могут быть обрезаны, это , а не , ошибка в OpenCV - фактически, это как cv2.getRotationMatrix2D и cv2.WarpAffine разработаны.

Хотя вычисление новых размеров изображения может показаться разочаровывающим и обременительным, чтобы гарантировать, что вы не потеряете свои границы, на самом деле это скрытое благословение.

OpenCV дает нам настолько много контроля , что мы можем изменить нашу матрицу вращения, чтобы она делала ровно , что мы хотим.

Конечно, это требует от нас знать, как формируется наша матрица вращения M и что представляет каждый из ее компонентов (обсуждалось ранее в этом уроке).Если мы понимаем это, математика выпадает естественно.

Чтобы узнать больше об обработке изображений и компьютерном зрении, обязательно ознакомьтесь с курсом PyImageSearch Gurus, где я обсуждаю эти темы более подробно.

В противном случае, я рекомендую вам ввести свой адрес электронной почты в форму ниже, чтобы получать уведомления при публикации будущих сообщений в блоге.

Figure 10: By modifying OpenCV

Загрузите исходный код и БЕСПЛАТНОЕ 17-страничное руководство по ресурсам

Введите адрес электронной почты ниже, чтобы получить.почтовый индекс и бесплатное 17-страничное руководство по ресурсам по Computer Vision, OpenCV и Deep Learning. Внутри вы найдете мои отобранные учебники, книги, курсы и библиотеки, которые помогут вам освоить CV и DL!

,

Отправить ответ

avatar
  Подписаться  
Уведомление о