¿Dónde está el problema de Wally usando Mahotas?

En este artículo veremos cómo podemos encontrar el wally en la imagen dada. ¿Donde esta Wally? , también llamado ¿Dónde está Waldo? en América del Norte es un libro de rompecabezas británico. Los libros consisten en una serie de ilustraciones detalladas de doble página que muestran a docenas o más de personas haciendo una variedad de cosas divertidas en un lugar determinado. Los lectores tienen el desafío de encontrar un personaje llamado Wally escondido en el grupo. 
Imagen utilizada en el programa – 
 

Wally Descripción: Wally se identifica por su camisa a rayas rojas y blancas, su gorro con pompones y sus anteojos, pero muchas ilustraciones contienen pistas falsas que involucran el uso engañoso de objetos a rayas rojas y blancas.
Para ello utilizaremos la librería mahotas . Mahotas es una biblioteca de procesamiento de imágenes y visión artificial para Python. Incluye muchos algoritmos implementados en C++ para acelerar mientras opera en arrays numpy y con una interfaz de Python muy limpia. 
Comando para instalar mahotas – 
 

pip install mahotas

A continuación se muestra la implementación: 
 

Python3

# importing required libraries
from pylab import imshow, show
import mahotas
import mahotas.demos
import numpy as np
 
# loading the image
wally = mahotas.demos.load('wally')
 
# showing the original image
imshow(wally)
show()
 
# getting float type value
# float values are better to use
wfloat = wally.astype(float)
 
# splitting image into red, green and blue channel
r, g, b = wfloat.transpose((2, 0, 1))
 
# white channel
w = wfloat.mean(2)
 
# pattern of wally shirt
# pattern + 1, +1, -1, -1 on vertical axis
pattern = np.ones((24, 16), float)
for i in range(2):
    pattern[i::4] = -1
 
# convolve with the red minus white
# increase the response where shirt is
v = mahotas.convolve(r-w, pattern)
 
# getting maximum value
mask = (v == v.max())
 
# creating mask to tone down the image
# except the region where wally is
mask = mahotas.dilate(mask, np.ones((48, 24)))
 
# subtraction mask from the wally
np.subtract(wally, .8 * wally * ~mask[:, :, None],
                   out = wally, casting ='unsafe')
 
# show the new image
imshow(wally)
show()

Producción : 
 

Publicación traducida automáticamente

Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *