¿Cómo trazar una imagen desde una matriz de conexión?

Quiero escribir un script para crear una imagen desde una matriz de conexión. Básicamente, donde quiera que haya un ‘1’ en la matriz, quiero que el área esté sombreada en la imagen. Por ejemplo:

introduzca la descripción de la imagen aquí

Creé esta imagen utilizando Photoshop. Pero tengo un gran conjunto de datos, así que tendré que automatizar el proceso. Sería de gran ayuda si alguien pudiera apuntarme en la dirección correcta.

EDITAR

La imagen que estoy obteniendo después de usar el script es esta. Esto se debe al hecho de que la matriz es grande (19 x 19). ¿Hay alguna forma en que pueda boost la visibilidad de esta imagen para que las cajas en blanco y negro aparezcan más claras?

introduzca la descripción de la imagen aquí

Yo sugeriría el uso de opencv combinado con numpy en este caso. Cree un numpy.array bidimensional de dtype='uint8' con 0 para negro y 255 para blanco. Por ejemplo, para obtener una matriz 2×2 con blanco superior izquierdo, blanco inferior derecho, negro inferior izquierdo y superior derecho negro, puede usar el código:

myarray = numpy.array([[255,0],[0,255]],dtype='uint8')

Entonces podrías guardar esa matriz como imagen con opencv2 de esta manera:

cv2.imwrite('image.bmp',myarray)

En el que cada celda de la matriz está representada por un solo píxel, sin embargo, si desea numpy.kron (por ejemplo, cada celda está representada por un cuadrado de 5×5), entonces puede usar la función numpy.kron , con la siguiente línea:

myarray = numpy.kron(myarray, numpy.ones((5,5)))

antes de escribir la imagen

Puede ser que puedas probar esto!

 import matplotlib.cm as cm # Display matrix plt.imshow(np.random.choice([0, 1], size=100).reshape((10, 10)),cmap=cm.binary) 

introduzca la descripción de la imagen aquí

Con un mapa de calor Seaborn:

 import seaborn as sns np.random.seed(3) sns.set() data = np.random.choice([0, 1], size=(16,16), p=[3./4, 1./4]) ax = sns.heatmap(data, square=True, xticklabels=False, yticklabels=False, cbar=False, linewidths=.8, linecolor='lightgray', cmap='gray_r') 

introduzca la descripción de la imagen aquí

Tenga en cuenta el mapa de gray_r inverso gray_r para tener negro para 1’s y blanco para 0’s.