EmbroBox — программа создания схем для вышивания крестом
EmbroBox — программа создания схем для вышивания крестом — Скачать программуВышла новая версия программы. Исправлены ошибки, добавлены новые функции, улучшена точность подбора цветов. В дальнейшем, по Вашим многочисленным просьбам, программа будет основана на нитках фирмы «Гамма», доработка ведется. Пока за таблицей «Гаммы» можете обращаться к Сергею Громову из Перьми, который любезно в этом помогает, за что ему спасибо. Если у Вас есть какие-то замечания и предложения, пишите в гостевую книгу. Помните, вышивальщицы! Программа совершенно бесплатна и сделана из любви к женщинам и программированию. Скачать
| |||||||||||||
Программы для создания схем вышивки
Сейчас компьютерные программы для вышивки крестом стали максимально удобными и доступными как опытной вышивальщице, так и начинающей. Чаще всего они разработаны на двух языках: русском и английском, поэтому не стоит переживать, что не хватает иностранных знаний. Также программа имеет раздел «Помощь», чтобы облегчить изучение интерфейса и его пользование.
Благодаря этим программам можно выполнить следующие действия:
- Они могут преобразовывать в схему для вышивания любую понравившуюся картинку, фото и т. д. Программа принимает любые изображения из интернета или галереи компьютера
- Мастерица может собственноручно заменять цвета, выбирать наименование нитей, дорисовывать или обрезать фото
- С помощью программы можно установить размер будущей картины, рассчитать количество крестиков по вертикали и горизонтали, используя специальный калькулятор
- Создавать различные символьные или цветовые схемы
- Распечатывать ключи к символьным схемам
- Выбирать производителей ниток мулине и их цветовые гаммы
Благодаря этой программе стало удобно переводить в схему любое понравившиеся изображение: портрет, пейзаж и др. , чтобы вышить крестиком или бисером.
Сейчас в просторах интернета можно скачать бесплатно любую из программ для вышивки, и вышивать самые уникальные картины. Также преимуществом создания схем, является удешевление картины, ведь учитывая себестоимость готового набора, такой вариант получения схемы будет самым дешёвым, уникальным и простым, а качество результата останется безупречным.
Существует множество программ для вышивания, которые можно скачать с помощью интернета.
Естественно некоторое их количество может быть платным, но основная масса находится в свободном доступе любому пользователю.
Какие существуют программы для вышивания крестом
Здесь рассмотрим наиболее популярные программы для вышивания. Они очень часто встречаются на личных компьютерах вышивальщиц, и регулярно используются ими.
Программа «Крестик»
Программа для вышивки крестом «Крестик», разработана Российскими специалистами. В интернете она является бесплатным приложением, поэтому широко востребован у тех, кто не желает платить за покупку программы.
Преимущества программы:
- Легка в использовании, благодаря удобному интерфейсу
- Без витиеватых функций, поэтому используется опытными мастерицами и начинающими рукодельницами
- У программы для вышивания есть функция загрузки, непосредственно с компьютера
- Во время обработки на мониторе показано исходное изображение и окно предпросмотра готовой схемы, с указанной цветовой палитрой
- В приложение внесены несколько видов производителей ниток, поэтому можно легко подобрать цвета схемы, именно под наименование мулине
- Позволяет самостоятельно выставлять размер вышивки, для этого нужно рассчитать, выставить оптимальное количество крестиков по горизонтали и вертикали
- Есть функция распечатки
- Её можно применять для преображения изображения, в случае вышивания бисером
После обработки изображения на программе «Крестик», любая мастерица сможет создать неповторимое изображение, благодаря покупке одних ниток.
Программа «Вышивка Просто!»
Эта бесплатная программа для вышивания «Вышивка Просто!» востребована среди рукодельниц различного возраста. Качество приложения ничем не отличается от ему подобных платных сервисов.
Преимущества:
- Загружает изображение, из любого источника
- Позволяет редактировать практически готовую схему, и не упускает мелкие деталей
- Позволяет подобрать схему, конкретно под популярного производителя мулине
- Есть возможность поставить редакцию фото «на паузу» и временно сохранить изображение внутри программы (на стадии обработки)
- Имеет понятный русскоязычный интерфейс
- Быструю скорость обработки изображения, поэтому процесс изготовления схемы занимает минимум времени
Пользуясь этим приложением можно получить быструю и качественную схему, поэтому в скором времени можно приступать к творению.
«Stitch Art Easy 4.0»
Программа для вышивки крестом «Stitch Art Easy 4. 0», тоже покорила вышивальщиц своей качественной бесплатной версией.
Преимущества:
- Качественно переводит в схему любую картинку или фотографию доступного формата (их множество)
- Не создаёт проблем с установкой на «Windows»
- Даёт возможность выбирать символы и цвета на схеме
- Позволяет распечатать символы, для удобства пользования схемой
- Легка в эксплуатации, но имеет «Справку», чтобы помочь разобраться в приложении
Данная программа является одной из лидеров в вышивальной области. Благодаря ей, вышивальщица может получить самое точное преобразование файла и помощь навигационного мастера в случае непонятностей.
«Pattern Maker Viewer»
Это приложение разработано для более опытных вышивальщиц, хорошо изучивших простые программы.
Преимущества:
- Может создавать цветовую, символьную или комбинированную схемы, где совмещается оттенок с символикой
- Имеет возможность рассчитывать количество ниток и крестиков
- Выставляет оптимальные размеры
- Корректирует схемы
- Имеет целый курс обучения работы с программой
- Находится в бесплатном доступе
Эта программа занимает немного больше времени, но создаёт высококачественные схемы и изображения, подобные магазинным. Она подходит как для вышивания бисером, так и крестом, поэтому часто скачивается с серверов.
Конечно это не все существующие программы для создания вышивальных схем. Данные варианты являются бесплатными и качественными, заслужившими доверие многих пользователей. Благодаря им, возможно, создавать неповторимые картины любого размера, даже портреты, которые можно смело дарить в праздник, и быть уверенным, что такого подарки не подарит никто!
Мое хобби — вышивка и вязание. » Blog Archive Подробное описание переноса графической схемы из формата PDF в формат XSD.
Как перенабрать схему в формате pdf с большим количеством страниц и не сойти при этом с ума. Недавно этот вопрос таки возник… 🙂
В наличии была схема Golden Kite на шестидесяти листах и стоял вопрос, а стоит ли вообще начинать по ней отшив. . Фирма конечно известная, но интересовало наличие неоправданных одиночек, да и вообще хотелось бы иметь представление, что ожидать в результате. Ну о том, что схемы с таким количеством цветов шить с монитора гораздо легче, чем с бумажной схемы, думаю даже упоминать не стоит..
И это оказывается действительно возможно! Не знаю кто изначально был автором этого метода, но тут даже преклониться перед ним, мне кажется, будет мало.. Так как знаю не по наслышке, что такое перенабирать схему в xsd с большим количеством листов и символов в ключе.
Сразу конечно стоит уточнить, что этот способ не подходит для схем в формате pdf, где схема вставлена просто как картинка. Необходим текстовый или табличный (если можно так его назвать) вариант, который позволяет работу с символами схемы. В таком формате представлены обычно схемы у Golden Kite и HAED.
Перенабор всего дизайна делать не буду, покажу последовательность действий на примере пары листов схемы.
Создаем палитру цветов для схемы.
1. Открываем пустой файл Pattern Maker и добавляем палитру цветов. Для этого сначала удаляем все первоначальные цвета — нажать правой кнопкой мыши на поле палитры и выбрать команду «Удалить все» (Delete all).
Удаление предыдущей палитры
Согласно списку номеров в схеме добавляем цвета в палитру. Здесь процесс идет довольно-таки быстро — номер цвета, Enter, номер цвета, Enter.. Если перейти на вкладку «Символы», можно также и символы выставить, как в схеме. Соответствие символов на результат не влияет, я меняла, чтобы потом было легче сверить схемы. А вот последовательность добавления цветов в палитру очень важна! Поэтому при добавлении цветов нужно очень внимательно следить, чтобы номера шли в той же последовательности, что и в таблице схемы.
Добавление списка номеров по ключу
Добавление символов по ключу
Набрав одиночные цвета, дальше добавляются бленды. Для этого в поле «Тип» выбираем параметр Blends. Можно редактировать уже имеющиеся в палитре цвета или просто добавлять свои номера в конец списка. При редактировании уже имеющихся в параметре «Тип нити» могут встретиться разные виды мулине, поэтому лучше тоже каждый раз посматривать на эти строчки при добавлении номеров.
Добавление блендов
Добавление номеров для бленда по ключу
2. После того, как все номера добавлены, сохраняем набранную палитру в отдельный файл.
Сохранение набранной палитры в отдельный файл
Обработка ключа схемы.
1. Для этого понадобится программа STDU Viewer (можно скачать ниже в приложениях).
Устанавливала ее с настройками по умолчанию, никаких изменений не вносила. Открываем в этой программе файл со схемой в формате pdf и находим страницу с ключом.
Открытие ключа схемы в STDU Viewer
2. Выбираем на панели режим «Выделение текста» и копируем все строчки таблицы с символами и номером ниток.
3. Открываем Word и вставляем скопированные данные на пустую страницу
Таблица с ключом к схеме может располагаться на нескольких листах, поэтому постепенно добавляем список. Для каждого ключа в Word-е должна быть отдельная строчка. Также добавляем и список блэндов
4. Теперь нужно удалить все лишнее, оставить только символы схемы. В каждой строчке это будут первые два символа. Можно просто построчно удалять все оставшиеся лишние буквы. Можно удерживая клавишу Alt выделить мышкой вертикальный текст, оставив первые два символа.
Я для своего удобства сначала преобразовывала текст в таблицу. Для этого нажимаем Ctrl+A (Выделить все), на панели инструментов нажимаем «Таблица» → «Преобразовать» → «Текст в таблицу». Мне не столь важно, как программа расставит в столбцах все данные, главное чтобы первые два знака были в отдельном столбце.
Мышкой сверху выделяем все столбцы, начиная со второго и удаляем их. Выделяем мышкой оставшийся первый столбец и опять заходим в меню «Таблица» → «Преобразовать» → «Таблицу в текст». Разделителем был указан «Знак абзаца». В результате получаются просто строчки с кодом символов ключа.
5. В дальнейшем я обнаружила, что у меня в некоторых местах парные символы распознаются по разному и из-за этого результат схемы был искажен. Поэтому из пары символов я оставила только один.
Теперь нужно проверить, чтобы в тексте, кроме самих символов, не осталось никаких лишних знаков. Нажимаем в Word-е на панели инструментов меню «Непечатаемые знаки» и бегло просматриваем текст в документе. Он должен состоять из одного символа и знака абзаца в конце строки.
6. Запускаем файл PDF2XSD.xlsm, который является листом Microsoft Office Exel с поддержкой макросов. Скачать можно также в архиве ниже в приложении.
Вот здесь для меня была первая большая проблема. Файл упорно открывался в режиме чтения. Оказалось, что у меня стояла старая версия Microsoft Office XP. После переустановки программы на версию Microsoft Office 2003 все получилось.
Итак, открываем файл PDF2XSD.xlsm. При открытии он сообщит, что «Запуск активного содержимого отключен». Заходим в «Параметры» и указываем «Включить это содержимое».
7. Копируем все символы ключа из документа Word (Ctrl+A (Выделить все), Ctrl+C (Скопировать)) и вставляем в первую ячейку А1 файла PDF2XSD.xlsm
Нажимаем кнопку СТАРТ. Отработав команду, программа сама перейдет на вкладку «Выход».
8. Смотрим ошибки.
Ошибка — задвоенный знак процент
В строке 91 задвоенный знак процент.
Ошибка — дополнительный пустой символ
В строке 127 дополнительный символ после знака больше. Скорее всего пробел.
Количество строк не совпадает с количеством цветов (у меня схема для 200 цветов). Этому объяснение найти не могу. Но так как на вкладке «Палитра» все 200 строк присутствуют, оставляю как есть.
9. Исправляем ошибки. Заходим на вкладку «Палитра» и на всякий случай удаляем результат. Снова копируем все символы ключа из документа Word на первую вкладку «Вход» файла PDF2XSD и исправляем предыдущие ошибки.
Удаляем лишний знак процент
Удаляем второй знак процента.
Удаляем пробел
Удаляем пробел.
Нажимаем СТАРТ и проверяем результат. Если все исправлено, переходим на вкладку «Палитра».
10. Сверяю количество цветов. В схеме 200 цветов. В палитре получилось 201. Одна строчка получилась с пустым символом. Удаляю всю строчку.
Строка 131 -пустая
Удаление пустой строки
11. Последовательность цветов в палитре должна соответствовать последовательности в ключе схемы, а значит и той последовательности цветов в палитре, которую мы создавали в самом начале.
Обработка схемы
1. Открываем в программе STDU Viewer первую страницу схемы. Не забываем указать режим «Выделение текста«.
Выделяем мышкой все строчки таблицы на первой странице. Нажимаем Ctrl+C (копировать) и открываем документ MS Word. Нажимаем Ctrl+V (вставить), Ctrl+A (выделить все), Ctrl+X (вырезать).
2. Открываем первую вкладку «Вход» в файле Pdf2Xsd.xlsm и, указав мышкой первую ячейку А1, вставляем скопированный текст. Также задаем ширину. У меня на схеме в ширину получается 47 клеточек. Для первой страницы параметры «Срезать слева» и «Срезать сверху» остаются с нулевым значением. Нажимаем кнопку «Старт» и ждем пока программа не завершит операцию и не перейдет на вкладку «Выход».
Результат уже начинает напоминать схему
3. Копируем получившийся результат и переходим на вкладку «Сборка». Вставляем скопированные данные в первую ячейку. Первый лист схемы обработан. Пока выделение активно, можно нажав правую кнопку мыши выбрать меню «Очистить содержимое» или клавишей Delete клавиатуры, убрать значки в схеме. В дальнейшем они могут повлиять на результат. Можно удалить их сразу или потом одновременно со всех листов. Белую кайму по периметру схемы удалять не надо.
Далее я все же бы посоветовала пропустить следующие пункты и перейти сразу к разделу «Подготовка схемы для импорта в Pattern Maker«. Сначала лучше проверить перевод в xsd на одной странице и если все получится, вернуться к оставшимся. Будет обидно потратить время на обработку 60 страниц и в последнем разделе обнаружить, что результат совсем не тот..
4. Возвращаемся к программе STDU Viewer и открываем следующую страницу схемы. Проверяем количество крестиков в ширину, так как на последних страницах схемы оно может отличаться. На этой странице первые три столбика — это перехлест с первой страницы. Поэтому в поле «Срезать слева» будет необходимо выставить значение 3. Так как сверху перехлеста нет, в поле «Срезать сверху» оставляем значение 0. Необходимо не забывать проверять эти значения для каждой страницы!
Копируем второй лист схемы из программы STDU Viewer и опять вставляем в пустой документ MS Word. Повторяем комбинацию Ctrl+V (Вставить), Ctrl+A (Выделить все), Ctrl+X (Вырезать) и вставляем получившуюся схему в текстовом виде в файл Pdf2Xsd.xlsm на вкладку «Вход». Задаем параметры «Ширина«, «Срезать слева«, «Срезать сверху» и нажимаем кнопку «Старт».
Копируем следующий лист схемы с нахлестом
Вставляем в Pdf2Xsd.xlsm и указываем ширину и перехлест
Получившийся результат с вкладки «Выход» копируем на вкладку «Сборка». Границу между страницами я оставляла. Для того чтобы не запутаться можно добавлять нумерацию страниц.
На одной из последних страниц схемы я неверно указала ширину и поэтому на выходе у меня получилась картинка с дополнительными квадратами. Поэтому будьте внимательны!
5. Таким методом копируем и вставляем на вкладку «Сборка» все листы схемы, соблюдая их последовательность. Периодически заглядываем на вкладку «Палитра» и проверяем не добавились ли дополнительные цвета. Внимательно смотрим, чтобы на вкладке «Сборка» добавляемые страницы совпадали по ширине и высоте с остальными. Иначе, ищем ошибку в параметрах на вкладке «Вход».
Для примера я вставила только несколько листов. При уменьшенном масштабе получается такая картинка
Подготовка схемы для импорта в Pattern Maker
1. После того, как все листы будут собраны на вкладке «Сборка», двигаемся дальше. Выделяем первый лист схемы с белой окантовкой, копируем и открываем программу Paint (стандартная программа Windows). Белую окантовку при копировании стала оставлять после того, как заметила, что при выделении области, самая первая клеточка иногда копируется с другим цветом.
2. Нажимаем комбинацию Ctrl+V, чтобы вставить скопированное. Иногда за вставленным рисунком остается белая область, если до этого вставляли что-то большего размера. Поэтому пока вставленный лист схемы выделен активным, нажимаем сразу «Обрезать» или комбинацию клавиш Ctrl+Shift+X, чтобы обрезать лишнее.
3. Далее заходим в меня «Свойства» и уменьшаем ширину и высоту на один пиксель (точку). Были атрибуты файла 1177х1633 пикселей. Меняем их на 1176х1632 пикселей. Параметры должны быть кратны 24!
4. Осталось сохранить полученный файл. Для этого заходим в меню «Сохранить как» и в «Типе файла» выбираем расширение PNG. Для удобства я называла файлы согласно номеру страницы в схеме.
5. Такие же действия (пункт 1-4) повторяем со всеми страницами схемы. Может возможно как-то ускорить этот процесс, объединив части схемы, но лично я побоялась запутаться и поэтому работала с каждым листом схемы отдельно.
17. В результате у нас должно получиться количество файлов с расширением PNG равное количеству листов схемы.
Импорт схемы в Pattern Maker
1. Импортируем по порядку все листы схемы, сохраненные раннее в формат PNG.
Запускаем программу Pattern Maker. Меню «Файл» → «Импорт изображения» → «Импорт в новую схему«. Через меню «Обзор» открываем первый лист схемы. В меню «Тип файла» выбираем PNG или «Все файлы«, иначе не будут видны искомые файлы.
2. На вкладке «Изображение» вычисляем будущий размер схемы. Для этого достаточно будет одного из параметров. Берем ширину 1176 : 24 = 49.
3. На вкладке «Метод» выбираем параметр импорта «Делаем схему»
4. На вкладке «Размер» задаем размер в крестиках, который был получен в пункте 2.
5. На вкладке «Цвета» указываем какой файл палитры использовать. Выбираем файл Palitra.pal, скачать который можно ниже в приложении. Выставляем максимальное значение цветов 240 и на вкладке «Дополнительно» убираем смешение цветов.
6. Нажимаем кнопку «Импорт» и после отработки команды «Закрыть». В результате получаем схему с желтой каемочкой. Тоже самое проделываем со всеми листами схемы.
7. Создаем новый лист в программе Pattern Maker. Размер для будущей общей схемы смотрим в файле pdf со схемой.
8. Заходим в меню «Палитра» → «Открыть палитру» и выбираем файл Palitra.pal, скачанный раннее.
9. Все готово для сборки всей схемы.
10. Копируем в этот лист все импортированные листы схемы из пункта 6 без желтой каемочки.
В символьном виде этот лист пока выглядит так
В моем примере вставлен только один первый лист, но это только для проверки результата. Если на примере первого листа схемы, все получится, то в этом пункте на этом листе должны быть собраны все листы схемы, импортированные в xsd в пункте 6.
11. И теперь самый важный момент! Снова заходим в меню «Палитра» → «Открыть палитру» и выбираем файл с палитрой, созданный в самом начале в разделе «Создаем палитру цветов для схемы».
И вот то, к чему мы стремились! Схема, перенабранная из формата pdf в формат xsd.
Сверяем страницы и, если все получилось бежим за шампанским, и если нет бежим за успокоительным и готовимся выяснять в чем же была ошибка.
У меня получилось не с первого раза.
Используя STOIK Stitch Creator, вы можете преобразовать фотографии в схему для вышивки крестиком . Это займет всего пару минут! Загрузите нашу программу для вышивки крестиком , установите ее, выберите любую свою картинку, изображение или фотографию и получите схему для вышивки крестиком и цветовую таблицу. Рисунки для вышивки крестиком можно изменять вручную с помощью таких инструментов, как виртуальная игла, заливка цветом, ластик, текст.У вас будет доступ к предварительному просмотру на каждом этапе вашей работы, и, наконец, вы сможете увидеть окончательные образцы строчек на экране, распечатать и опубликовать свою работу в виде готового к распространению файла PDF. Простое вышивание крестикомSTOIK Stitch Creator позволяет легко превратить ваши фотографии в шедевр для вышивки крестом . Вы можете преобразовать любое изображение или фотографию в узор для вышивки крестиком или создать свои собственные схемы вышивки крестиком с нуля, используя такие инструменты, как виртуальные иглы, цветовая заливка, ластик, вставки текста и изображений. Создание рисунков для вышивки крестиком за три простых шагаЧтобы преобразовать изображение в схему для вышивки крестиком, нужно всего три простых шага.
Лучшее преобразование в цвета нитокСоздавайте схемы для вышивки крестиком в идеальном цвете! STOIK Stitch Creator знает цвета большинства ниток и имеет информацию из многих последних каталогов брендов. Указав, какие нити вы собираетесь использовать, вы можете помочь STOIK Stitch Creator создать для вас идеальный узор.
Мощные инструменты для редактирования узоров для вышивки крестикомНе очень довольны загруженным фоном любимой фотографии? Хотите добавить в свою работу тему или сезонное приветствие? Множество доступных инструментов редактирования помогут вам сделать это с легкостью.
| Большое спасибо — я знал, что это, вероятно, прямо передо мной. Трейси Хеклер, координатор помощи семье, Национальная гвардия армии Орегона |
Конвертировать картинку в вышивку бесплатно Скачать для Windows
1 DP Software UK 229 Условно-бесплатное ПО
Может использоваться для преобразования фотографий и картинок в схемы для вышивки крестиком.
1 Eureka Multimedia Pty Ltd 31 год Коммерческий
Пусть вам на помощь придет невероятно простая в использовании опция импорта.
10 STOIK Imaging 282 Условно-бесплатное ПО
PM Stitch Creator позволяет создавать схемы вышивки крестиком по собственному дизайну.
42 Ravlyk.net 1,544 Бесплатное ПО
Позволяет конвертировать ваши фотографии и картинки в схемы для вышивки крестиком.
2 Яри Хаутио 92 Бесплатное ПО
Помогает разработать выкройку для коврика или вышивки крестом по рисунку.
9 Лаборатория программного обеспечения Кейджи Икута 459 Бесплатное ПО
«KG-Chart for Cross Stitch» — программа для создания схемы для вышивки крестом.
1 Дримсофтс Оптимизация ООО Часть. 37 Демо
Mosaic Converter — это компьютерная программа, предназначенная для проектирования и создания мозаичных изображений.
M&R Technologies 1 Условно-бесплатное ПО
Программа для вышивки крестиком для дизайнеров и серьезных энтузиастов вышивки крестиком.
3 M&R Technologies, Inc. 2 Условно-бесплатное ПО
Можно взять практически любое графическое изображение и преобразовать его в схему вышивки крестиком.
Паскаль Суше 24 Условно-бесплатное ПО
Легко и точно превратите вашу фотографию в схему для вышивки крестиком.
Ursa Software 25 Условно-бесплатное ПО
Преобразование изображений в схемы для вышивки крестиком, гобеленов, бисера и вязания.
3 STOIK Imaging 395 Условно-бесплатное ПО
С STOIK Stitch Creator вы можете создавать свои собственные счетные схемы вышивки крестиком.
52 EasyCross 828 Условно-бесплатное ПО
Easy Cross был разработан, чтобы дать вам дизайн-пакет для вышивки крестом.
1 Mozusystems, ООО 111 Условно-бесплатное ПО
KG-Chart for Cross Stitch »- программа для создания схемы для вышивки крестом..
ScanWare International 11 Коммерческий
Создает высококачественные дизайны, подходящие для вышивки крестом.
Creative Craftware, Inc. 25 Условно-бесплатное ПО
Ультрасовременный программный продукт для вышивки крестиком с множеством творческих инноваций.
38 Ursa Software 42 Условно-бесплатное ПО
Позволяет создавать вышивки крестиком, гобелены, вышивки бисером, вязание.
Сшивание панорамы OpenCV — PyImageSearch
В сегодняшнем сообщении блога я продемонстрирую, как выполнить сшивание изображений и построение панорамы с использованием Python и OpenCV. Получив два изображения, мы «сшиваем» их вместе, чтобы создать простую панораму, как показано в примере выше.
Чтобы построить нашу панораму изображения, мы будем использовать методы компьютерного зрения и обработки изображений, такие как: обнаружение ключевых точек и локальные инвариантные дескрипторы; сопоставление ключевых точек; RANSAC; и искривление перспективы.
Поскольку существует основных различий в том, как OpenCV 2.4.X и OpenCV 3.X обрабатывают обнаружение ключевых точек и локальные инвариантные дескрипторы (такие как SIFT и SURF), я позаботился о предоставлении кода, совместимого с обе версии (при условии, что вы скомпилировали OpenCV 3 с поддержкой opencv_contrib
, конечно).
В будущих сообщениях блога мы расширим наш код сшивания панорамы для работы с несколькими изображениями, а не только с двумя.
Прочтите, чтобы узнать, как выполняется сшивание панорамы с помощью OpenCV.
Сшивание панорамы OpenCV
Наш алгоритм создания панорамы состоит из четырех шагов:
- Шаг № 1: Определите ключевые точки (DoG, Harris и т. Д.) И извлеките локальные инвариантные дескрипторы (SIFT, SURF и т. Д.) Из двух входных изображений.
- Шаг № 2: Сопоставьте дескрипторы между двумя изображениями.
- Шаг № 3: Используйте алгоритм RANSAC для оценки матрицы гомографии с использованием наших согласованных векторов признаков.
- Шаг № 4: Примените преобразование деформации, используя матрицу гомографии, полученную из Шаг № 3 .
Мы инкапсулируем все четыре шага в Panorama.py
, где мы определим класс Stitcher
, используемый для создания наших панорам.
Класс Stitcher
будет полагаться на пакет imutils Python, поэтому, если он еще не установлен в вашей системе, вы захотите продолжить и сделать это сейчас:
$ pip install imutils
Давайте продолжим и начнем с просмотра панорамы.py
:
# импортируем необходимые пакеты импортировать numpy как np импорт imutils импорт cv2 класс Stitcher: def __init __ (сам): # определяем, используем ли мы OpenCV v3.X self.isv3 = imutils.is_cv3 (or_better = True)
Мы начинаем на строках 2-4 , импортируя наши необходимые пакеты. Мы будем использовать NumPy для операций с матрицами / массивами, imutils
для набора удобных методов OpenCV и, наконец, cv2
для наших привязок OpenCV.
Оттуда мы определяем класс Stitcher
в Line 6 . Конструктор Stitcher
просто проверяет, какую версию OpenCV мы используем, вызывая метод is_cv3
. Поскольку существуют большие различия в том, как OpenCV 2.4 и OpenCV 3 обрабатывают обнаружение ключевых точек и локальные инвариантные дескрипторы, важно определить версию OpenCV, которую мы используем.
Теперь давайте начнем работать со стежком , метод
:
def stitch (self, images, ratio = 0.75, reprojThresh = 4.0, showMatches = False): # распаковать изображения, затем определить ключевые точки и извлечь # локальных инвариантных дескриптора из них (imageB, imageA) = изображения (kpsA, featuresA) = self.detectAndDescribe (imageA) (kpsB, featuresB) = self.detectAndDescribe (imageB) # совпадение характеристик между двумя изображениями M = self.matchKeypoints (kpsA, kpsB, featuresA, featuresB, ratio, reprojThresh) # если совпадений нет, то совпадений недостаточно # ключевые точки для создания панорамы если M равно None: return None
Для метода stitch
требуется только один параметр, images
, который представляет собой список (двух) изображений, которые мы собираемся сшить вместе, чтобы сформировать панораму.
Мы также можем дополнительно предоставить коэффициент ,
, используемый для теста отношения Дэвида Лоу при сопоставлении функций (подробнее об этом тесте отношения позже в руководстве), reprojThresh
, который является максимальным «пространством для маневра» пикселя, разрешенным алгоритмом RANSAC, и наконец showMatches
, логическое значение, используемое, чтобы указать, должны ли совпадения ключевых точек визуализироваться или нет.
Строка 15 распаковывает список изображений
(который, опять же, мы предполагаем, что он содержит только два изображения).Порядок в списке изображений
важен: мы ожидаем, что изображения будут поставляться в порядке слева направо и . Если изображения , а не , поставляются в этом порядке, наш код все равно будет работать, но наша выходная панорама будет содержать только одно изображение, а не оба.
После того, как мы распаковали список изображений
, мы вызываем метод detectAndDescribe
в строках 16 и 17 . Этот метод просто обнаруживает ключевые точки и извлекает локальные инвариантные дескрипторы (т.е.е., SIFT) из двух изображений.
Учитывая ключевые точки и функции, мы используем matchKeypoints
( строки 20 и 21, ) для сопоставления функций на двух изображениях. Мы определим этот метод позже на уроке.
Если возвращенные совпадения M
равны Нет
, то было сопоставлено недостаточно ключевых точек для создания панорамы, поэтому мы просто возвращаемся к вызывающей функции ( строки 25 и 26 ).
В противном случае мы готовы применить перспективное преобразование:
# в противном случае примените перспективную деформацию для сшивания изображений # все вместе (совпадения, H, статус) = M результат = cv2.warpPerspective (imageA, H, (imageA.shape [1] + imageB.shape [1], imageA.shape [0])) результат [0: imageB.shape [0], 0: imageB.shape [1]] = imageB # проверить, должны ли быть визуализированы совпадения ключевых точек если showMatches: vis = self.drawMatches (imageA, imageB, kpsA, kpsB, совпадения, положение дел) # вернуть кортеж сшитого изображения и # визуализация return (результат, vis) # возвращаем сшитое изображение вернуть результат
При условии, что M
не является Нет
, мы распаковываем кортеж в Строке 30 , что дает нам список ключевых точек , совпадающих с
, матрицу гомографии H
, полученную из алгоритма RANSAC, и, наконец, статус
, список индексов, указывающих, какие ключевые точки в совпадают с
, были успешно пространственно проверены с помощью RANSAC.
Учитывая нашу матрицу гомографии H
, теперь мы готовы сшить два изображения вместе. Сначала мы вызываем cv2.warpPerspective
, который требует трех аргументов: изображение, которое мы хотим деформировать (в данном случае, правое изображение ), матрица преобразования 3 x 3 ( H
) и наконец, форма выходного изображения. Мы получаем форму из выходного изображения, суммируя ширину обоих изображений, а затем используя высоту второго изображения.
Строка 30 проверяет, следует ли нам визуализировать совпадения ключевых точек, и если да, мы вызываем drawMatches
и возвращаем кортеж панорамы и визуализации вызывающему методу ( Строки 37-42 ).
В противном случае мы просто вернули сшитое изображение ( Строка 45 ).
Теперь, когда определен метод stitch
, давайте рассмотрим некоторые из вызываемых им вспомогательных методов. Начнем с detectAndDescribe
:
def detectAndDescribe (себя, изображение): # преобразовать изображение в оттенки серого серый = cv2.cvtColor (изображение, cv2.COLOR_BGR2GRAY) # проверяем, используем ли мы OpenCV 3.X если self.isv3: # обнаруживать и извлекать особенности изображения дескриптор = cv2.xfeatures2d.SIFT_create () (kps, features) = descriptor.detectAndCompute (изображение, Нет) # в противном случае мы используем OpenCV 2.4.X еще: # обнаруживаем ключевые точки на изображении детектор = cv2.FeatureDetector_create ("SIFT") kps = Detect.detect (серый) # извлекаем элементы из изображения экстрактор = cv2.DescriptorExtractor_create ("SIFT") (kps, features) = extractor.compute (серый, kps) # преобразовываем ключевые точки из объектов KeyPoint в NumPy # массивов kps = np.float32 ([kp.pt для kp в kps]) # возвращаем кортеж ключевых точек и функций возврат (км / с, характеристики)
Как следует из названия, метод detectAndDescribe
принимает изображение, затем обнаруживает ключевые точки и извлекает локальные инвариантные дескрипторы. В нашей реализации мы используем детектор ключевых точек Различия Гаусса (DoG) и экстрактор признаков SIFT.
В строке 52 мы проверяем, используем ли мы OpenCV 3.X. Если да, то мы используем функцию cv2.xfeatures2d.SIFT_create
для создания экземпляров как нашего детектора ключевых точек DoG, так и экстрактора функций SIFT. Вызов detectAndCompute
обрабатывает извлечение ключевых точек и функций (, строки 54 и 55, ).
Важно отметить, что должны скомпилировать OpenCV 3.X с включенной поддержкой opencv_contrib. Если вы этого не сделали, вы получите сообщение об ошибке, например AttributeError: объект 'module' не имеет атрибута 'xfeatures2d'
.Если это так, перейдите на мою страницу руководств по OpenCV 3, где я подробно расскажу, как установить OpenCV 3 с поддержкой opencv_contrib
, включенной для различных операционных систем и версий Python.
Строки 58-65 обрабатывают, если мы используем OpenCV 2.4. Функция cv2.FeatureDetector_create
создает экземпляр нашего детектора ключевых точек (DoG). Вызов detect
возвращает наш набор ключевых точек.
Оттуда нам нужно инициализировать cv2.DescriptorExtractor_create
, используя ключевое слово SIFT
, чтобы настроить нашу функцию SIFT экстрактор
.Вызов метода compute
экстрактора
возвращает набор векторов признаков, которые количественно определяют область, окружающую каждую из обнаруженных ключевых точек на изображении.
Наконец, наши ключевые точки преобразуются из объектов KeyPoint
в массив NumPy (, строка 69, ) и возвращаются вызывающему методу (, строка 72, ).
Теперь давайте посмотрим на метод matchKeypoints
:
def matchKeypoints (self, kpsA, kpsB, featuresA, featuresB, ratio, reprojThresh): # вычисляем необработанные совпадения и инициализируем список фактических # Матчи совпадение = cv2.DescriptorMatcher_create ("BruteForce") rawMatches = matcher.knnMatch (featuresA, featuresB, 2) совпадения = [] # перебрать необработанные совпадения для m в rawMatches: # убедитесь, что расстояние находится в определенном соотношении между каждым # другое (например, тест соотношения Лоу) если len (m) == 2 и m [0] .distanceДля функции
matchKeypoints
требуется четыре аргумента: ключевые точки и векторы признаков, связанные с первым изображением, за которыми следуют ключевые точки и векторы признаков, связанные со вторым изображением.Также предоставляются тестовая переменная , коэффициент Дэвида Лоу и порог повторного проецирования RANSAC.На самом деле сопоставление функций - довольно простой процесс. Мы просто перебираем дескрипторы обоих изображений, вычисляем расстояния и находим наименьшее расстояние для каждой пары дескрипторов. Поскольку это очень распространенная практика в компьютерном зрении, OpenCV имеет встроенную функцию под названием
cv2.DescriptorMatcher_create
, которая создает для нас сопоставление функций.ЗначениеBruteForce
указывает на то, что мы собираемся исчерпывающе вычислить евклидово расстояние между всеми векторами признаков из обоих изображений и найти пары дескрипторов, которые имеют наименьшее расстояние.Вызов
knnMatch
в строке 79 выполняет сопоставление k-NN между двумя наборами векторов признаков, используя k = 2 (что указывает на то, что возвращаются два верхних совпадения для каждого вектора признаков).Причина, по которой мы хотим, чтобы два первых совпадения , а не только первое совпадение, заключалась в том, что нам нужно применить тест отношения Дэвида Лоу для исключения ложноположительных совпадений.
Опять же, Строка 79 вычисляет
rawMatches
для каждой пары дескрипторов, но есть вероятность, что некоторые из этих пар являются ложными срабатываниями, что означает, что участки изображения на самом деле не соответствуют действительности. В попытке отсечь эти ложноположительные совпадения мы можем перебрать каждый изrawMatches
индивидуально (, строка 83, ) и применить тест соотношения Лоу, который используется для определения качественных совпадений функций. Типичные значения коэффициента Лоу обычно находятся в диапазоне [0.7, 0,8] .После того, как мы получили
совпадение
с помощью теста отношения Лоу, мы можем вычислить гомографию между двумя наборами ключевых точек:# для вычисления гомографии требуется не менее 4 совпадений если len (соответствует)> 4: # построить два набора точек ptsA = np.float32 ([kpsA [i] для (_, i) в совпадениях]) ptsB = np.float32 ([kpsB [i] для (i, _) в совпадениях]) # вычисляем гомографию между двумя наборами точек (H, статус) = cv2.findHomography (ptsA, ptsB, cv2.RANSAC, reprojThresh) # возвращаем совпадения вместе с матрицей гомографии # и статус каждой совпавшей точки возврат (совпадения, H, статус) # в противном случае нельзя было бы вычислить гомографию return NoneДля вычисления гомографии между двумя наборами точек требуется как минимум для начального набора из четырех совпадений. Для более надежной оценки гомографии у нас должно быть значительно больше, чем четыре совпадающих точки.
Наконец, последний метод в нашем методе
Stitcher
,drawMatches
, используется для визуализации соответствий ключевых точек между двумя изображениями:def drawMatches (self, imageA, imageB, kpsA, kpsB, match, status): # инициализировать изображение визуализации вывода (hA, wA) = imageA.shape [: 2] (hB, wB) = imageB.shape [: 2] vis = np.zeros ((max (hA, hB), wA + wB, 3), dtype = "uint8") vis [0: hA, 0: wA] = imageA vis [0: hB, wA:] = imageB # перебрать совпадения for ((trainIdx, queryIdx), s) в zip (совпадения, статус): # обрабатывать совпадение, только если ключевая точка была успешно # соответствует если s == 1: # нарисуйте матч ptA = (int (kpsA [queryIdx] [0]), int (kpsA [queryIdx] [1])) ptB = (int (kpsB [trainIdx] [0]) + wA, int (kpsB [trainIdx] [1])) cv2.строка (vis, ptA, ptB, (0, 255, 0), 1) # вернуть визуализацию вернуться вЭтот метод требует, чтобы мы передали два исходных изображения, набор ключевых точек, связанных с каждым изображением, начальные совпадения после применения теста соотношения Лоу и, наконец, список
статуса
, полученный при вычислении гомографии. Используя эти переменные, мы можем визуализировать «входящие» ключевые точки, проведя прямую линию от ключевой точки N на первом изображении до ключевой точки M на втором изображении.Теперь, когда у нас определен класс
Stitcher
, перейдем к созданию сценария драйвераstitch.py
:# импортируем необходимые пакеты из pyimagesearch.panorama import Stitcher import argparse импорт imutils импорт cv2 # создать аргумент, синтаксический анализ и анализ аргументов ap = argparse.ArgumentParser () ap.add_argument ("- f", "--first", required = True, help = "путь к первому изображению") ap.add_argument ("- s", "--second", required = True, help = "путь ко второму изображению") args = vars (ap.parse_args ())Мы начинаем с импорта необходимых пакетов на строках 2-5 . Обратите внимание, как мы поместили классы
Panorama.py
иStitcher
в модульpyimagesearch
, чтобы наш код был аккуратным.Примечание: Если вы подписаны на это сообщение и у вас возникли проблемы с организацией кода, обязательно загрузите исходный код, используя форму внизу этого сообщения. Файл .zip для загрузки кода будет запущен из коробки без ошибок.
Отсюда Строки 8-14 анализируют аргументы нашей командной строки:
- первое,
, которое является путем к первому изображению в нашей панораме (самое левое изображение ), и- второе
, путь ко второму изображению на панораме (крайнее правое изображение ).Помните, что эти пути изображения должны быть указаны в порядке слева направо !
Остальная часть скрипта драйвера
stitch.py
просто обрабатывает загрузку наших изображений, изменение их размера (чтобы они соответствовали нашему экрану) и построение нашей панорамы:# загружаем два изображения и изменяем их размер до 400 пикселей в ширину # (для более быстрой обработки) imageA = cv2.imread (args ["первый"]) imageB = cv2.imread (args ["второй"]) imageA = imutils.resize (imageA, ширина = 400) imageB = imutils.resize (imageB, ширина = 400) # сшиваем изображения вместе, чтобы создать панораму stitcher = брошюровщик () (результат, vis) = stitcher.stitch ([imageA, imageB], showMatches = True) # показать изображения cv2.imshow ("Изображение A", изображениеA) cv2.imshow ("Изображение B", изображениеB) cv2.imshow ("Ключевые точки совпадений", vis) cv2.imshow («Результат», результат) cv2.waitKey (0)После загрузки и изменения размеров наших изображений мы инициализируем наш класс
Stitcher
в строке , строка 23 . Затем мы вызываем методstitch
, передавая наши два изображения (снова , в порядке слева направо) и указываем, что мы хотели бы визуализировать совпадения ключевых точек между двумя изображениями.Наконец, Строки 27-31 отображают наши выходные изображения на наш экран.
Результаты склейки панорамы
В середине 2014 года я поехал в Аризону и Юту, чтобы насладиться национальными парками.По пути я останавливался во многих местах, включая Брайс-Каньон, Гранд-Каньон и Седону. Учитывая, что в этих местах есть красивые живописные виды, я, естественно, сделал несколько фотографий, некоторые из которых идеально подходят для построения панорам. Я включил образцы этих изображений в сегодняшний блог, чтобы продемонстрировать сшивание панорамы.
Итак, давайте попробуем наш сшиватель панорам OpenCV. Откройте терминал и введите следующую команду:
$ python stitch.py - первые изображения / bryce_left_01.png \ --секундные изображения / bryce_right_01.pngРисунок 1: (вверху) Два входных изображения каньона Брайс (в порядке слева направо). (Внизу) Совпадающие соответствия ключевых точек между двумя изображениями.В верхней части этого рисунка мы видим два входных изображения (размер которых изменен в соответствии с моим экраном, необработанные файлы .jpg имеют гораздо более высокое разрешение). А на нижнем мы можем видеть совпадающие ключевые точки между двумя изображениями.
Используя эти согласованные ключевые точки, мы можем применить перспективное преобразование и получить окончательную панораму:
Рисунок 2: Создание панорамы из двух наших входных изображений.Как мы видим, два изображения успешно сшиты вместе!
Примечание: На многих из этих примеров изображений вы часто видите видимый «шов», проходящий через центр сшитых изображений. Это связано с тем, что я сделал много фотографий, используя свой iPhone или цифровую камеру с поворотом автофокуса на , поэтому фокусировка немного отличается для каждого снимка . Сшивание изображений и построение панорамы работают лучше всего, когда вы используете один и тот же фокус для каждой фотографии.Я никогда не собирался использовать эти отпускные фотографии для сшивания изображений, иначе я бы позаботился о настройке датчиков камеры. В любом случае имейте в виду, что шов возникает из-за различных свойств сенсора в то время, когда я делал снимок, и не был преднамеренным.
Давайте попробуем еще один набор изображений:
$ python stitch.py --first images / bryce_left_02.png \ --вторые изображения / bryce_right_02.pngРисунок 3: Еще одно успешное применение сшивания изображений с помощью OpenCV.И снова наш класс
Stitcher
смог построить панораму из двух входных изображений.А теперь перейдем к Гранд-Каньону:
.$ python stitch.py --first images / grand_canyon_left_01.png \ --second images / grand_canyon_right_01.pngРисунок 4: Применение сшивания изображений и построения панорамы с использованием OpenCV.На приведенных выше входных изображениях мы видим сильное перекрытие между двумя входными изображениями. Основное дополнение к панораме - это , правая сторона сшитых изображений, где мы можем видеть больше «выступа», добавляется к выходным данным.
Вот еще один пример из Гранд-Каньона:
$ python stitch.py --first images / grand_canyon_left_02.png \ --вторые изображения / grand_canyon_right_02.pngРисунок 5: Использование сшивания изображений для построения панорамы с использованием OpenCV и Python.Из этого примера мы видим, что к панораме добавлено больше огромных просторов Гранд-Каньона.
Наконец, давайте завершим это сообщение в блоге примером сшивки изображения от Sedona, AZ:
$ python stitch.py --first images / sedona_left_01.png \ --секундные изображения / sedona_right_01.pngРисунок 6: Последний пример применения сшивания изображений.Лично я считаю, что страна красных скал Седона - одна из самых красивых мест, которые я когда-либо посещал. Если у вас когда-нибудь будет шанс, обязательно загляните - вы не будете разочарованы.
Итак, у вас есть сшивание изображений и построение панорамы с использованием Python и OpenCV!
Сводка
В этом сообщении в блоге мы узнали, как сшивать изображения и создавать панорамы с помощью OpenCV.Исходный код был предоставлен для сшивания изображений для как для OpenCV 2.4, так и для OpenCV 3.
Наш алгоритм сшивания изображений требует четырех шагов: (1) обнаружение ключевых точек и извлечение локальных инвариантных дескрипторов; (2) сопоставление дескрипторов между изображениями; (3) применение RANSAC для оценки матрицы гомографии; и (4) применение преобразования деформации с использованием матрицы гомографии.
Несмотря на простоту, этот алгоритм хорошо работает на практике при построении панорам для двух изображений.В следующей записи блога мы рассмотрим, как создавать панорамы и выполнять сшивание изображений для более чем двух изображений .
В любом случае, я надеюсь, вам понравился этот пост! Обязательно воспользуйтесь формой ниже, чтобы загрузить исходный код и попробовать.
Загрузите исходный код и БЕСПЛАТНОЕ 17-страничное руководство по ресурсам
Введите свой адрес электронной почты ниже, чтобы получить .zip кода и БЕСПЛАТНОЕ 17-страничное руководство по компьютерному зрению, OpenCV и глубокому обучению. Внутри вы найдете мои тщательно отобранные учебники, книги, курсы и библиотеки, которые помогут вам освоить резюме и DL!
.