Гм Mosaico ou panorama dememen (em Inglês, stitching ) Congepe em uma composição a partir de algoritmos de alinhamento, os Quais estão entre OS MAIS ANTIGOS E USADOS NA AREA DE VISEAO COMPUTACIONAL.
Сан -муито úteis, por exemplo, na construção de mapas, fotos de satélite e na criação de panoramas de imagens nos смартфоны.
Passos para A Criar um mosaico:
Passo 1 – incontrar pontos -chave em todas как fotos
Connode na indificação de pontos semelhantes nas imagens, para que haja o Alinhamento Correto dos objetos.
Passo 2 – Encontrar Croperências Paralelas (парные соответствия)
Para que haja a construção de um único objeto educificado, éecyriio incontrar croperências entre elas.
Como Diria Fábio Jr, Incontrar как Metades Da Laranja.
Passo 3 E 4 – Cossar Homografias Semelhantes e Refiná -Las (парные гомографии)
O Processo de Homografia (em Inglês, гомография ) cropere ao mapeamento de duas projeções, onde há ângulos diferentes em planos 2d ou 3d. Ao refinar esse mapeamento, é possion inncontrar pontos em comum e mapear suas posições combinadas em unuma única perspectiva.
Passo 5 – Junção Das Imagens
POR FIM, PARA Realizar O Panorama é PreciSo Juntá-Las USANDO OS OS CONCEITOS Перед. Abaixo há Um Exemplo de Mosaico:
Fim de Reproduzir Esse Resultado, Utilizaremos A Biblioteca с открытым исходным кодом Opencv e linguagem de Programação Python Para Construir um mosaico de múltiplas fotos.
PARA CRIAR MOSAICOS DE IMAMENS USANDO OPENCV, Endispensável USAR A Classe Stitcher Анкет
Passo 1 – Importação Das Bibliotecas
Usaremos как Bibliotecas CV2 (OpenCV), глобус (Para Retornar Todos os arquivos em Ум Диртерорио), matplotlib.pyplot (UMA Coleção de Funcões Que Simulam o matlab) e Математика (Funcões Matemáticas).
import cv2 import glob import matplotlib.pyplot as plt import math
Passo 2 – Leitura Das Imagens
Neste Passo, Glob.glob Imentificará Todas As Imagens Do Diretório Informado: (“Diretorio/ “) E Areazação Da Leitura Será Feita Com O Apoio Da Função ** imread * сделать OpenCV. Как Imagens SãO Convertidas de Bgr Para Rgb para fareilitar идентификация Dos Pontos-Chave Das Imagens.
imagefiles = glob.glob("diretorio/*") imagefiles.sort() images = [] for filename in imagefiles: img = cv2.imread(filename) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) images.append(img) num_images = len(images)
Passo 3 – Exibição das Imagens
Para que haja a exibição prévia das imagens a serem utilizadas, serão plotadas linhas e colunas de acordo com num_images Анкет
plt.figure(figsize=[30,10]) num_cols = 3 num_rows = math.ceil(num_images / num_cols) for i in range(0, num_images): plt.subplot(num_rows, num_cols, i+1) plt.axis('off') plt.imshow(images[i])
Passo 4 – Construção do mosaico e exibição do resultado
Por fim, usaremos a classe Стич Para Realizar o Panorama Das Imagens Selecionadas:
stitcher = cv2.Stitcher_create() status, result = stitcher.stitch(images) if status == 0: plt.figure(figsize=[30, 10]) plt.imshow(result) plt.show()
Código Apployo: ссылка Нет GitHub
import cv2 import glob import matplotlib.pyplot as plt import math # Read Images imagefiles = glob.glob("diretorio/*") imagefiles.sort() images = [] for filename in imagefiles: img = cv2.imread(filename) img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) images.append(img) num_images = len(images) # Display Images plt.figure(figsize=[30, 10]) num_cols = 3 num_rows = math.ceil(num_images / num_cols) for i in range(0, num_images): plt.subplot(num_rows, num_cols, i+1) plt.axis('off') plt.imshow(images[i]) # Stitch Images stitcher = cv2.Stitcher_create() status, result = stitcher.stitch(images) if status == 0: plt.figure(figsize=[30, 10]) plt.imshow(result) plt.show()
См
Гартия, Аниша. Проект 2: Локальное сопоставление функций. Disponível Em: https://www.cc.gatech.edu/classes/ay2016/cs4476_fall/results/proj2/html/agartia3/.
Салиски, Ричард. Компьютерное зрение: алгоритмы и приложения. 2021. Disponível Em: https://szeliski.org/book/.
Милграм, Д. Л .. Компьютерные методы для создания фотомозаики, в IEEE Transactions на компьютерах, Vol. C-24, нет. 11, с. 1113-1119, ноябрь 1975, DOI: 10.1109/T-C.1975.224142.
OpenCV. Основные понятия гомографии объяснены с кодом. Disponível EM: https://docs.opencv.org/3.4/d9/dab/tutorial_homography.html.
OpenCV. Курс Python OpenCV. Disponível Em: https://opencv.org/opencv-python-free-course/.
Пулли, Кари. Прошивание и смешивание. Disponível EM: https://web.stanford.edu/class/cs231m/lectures/lecture-5-stitching-lending.pdf. Acesso EM: 14 июля. 2021.
Таралло, Андре де Соуза. Construção Automática de Mosaicos de Imagens Digitais aéreas Agrícolas utilizando transformada sift e processamento paralelo. 2013.
Wu, Mengmeng & Wang, J .. (2018). Повторное объединение сломанных частиц песка с использованием алгоритма соответствия трещин. Порошковая технология. 338. 10.1016/j.powtec.2018.06.045.
Оригинал: “https://dev.to/tassi/mosaico-de-imagens-com-opencv-e-python-3403”