Рубрики
Без рубрики

Mosaico de Imagens com opencv e python

Um Mosaico ou panorama de Imagens (em inglês, сшивание изображений). Tagged с Python, OpenCV, Computerervision.

Гм 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”