emprunt cet exemple de astropy:masque une image section (np.ndarray) qui est située entre deux courbes
import numpy as np
from matplotlib import pyplot as plt
from astropy.io import fits
from astropy.wcs import WCS
from astropy.utils.data import download_file
fits_file = 'http://data.astropy.org/tutorials/FITS-images/HorseHead.fits'
image_file = download_file(fits_file, cache=True)
hdu = fits.open(image_file)[0]
wcs = WCS(hdu.header)
fig = plt.figure()
ax = fig.add_subplot(111)
plt.imshow(hdu.data, origin='lower', cmap='cubehelix')
plt.xlabel('X')
plt.ylabel('Y')
x_array = np.arange(0, 1000)
line_1 = 1 * x_array + 20 * np.sin(0.05*x_array)
line_2 = x_array - 100 + 20 * np.sin(0.05*x_array)
plt.plot(x_array, line_1, color='red')
plt.plot(x_array, line_2, color='red')
ax.set_xlim(0, hdu.shape[1])
ax.set_ylim(0, hdu.shape[0])
plt.show()
Je souhaite calculer la valeur de pixel médian (dans la direction y par exemple) qui se trouve entre la deux courbes:
je crois que la chose intelligente serait de créer un masque pour la région d'intérêt.
Y a-t-il un moyen de générer ce masque sans boucler sur les pixels de l'image?
Edit 1: question d'améliorer la compréhension Modified
Edit 2: J'ai changé l'exemple pour mieux représenter le titre de la question (courbes au lieu de lignes droites)
Vous souhaitez calculer la valeur médiane de quoi, exactement? Si vous essayez de trouver le centre de la zone délimitée par ces deux lignes, n'est-ce pas simplement le milieu d'un trapèze? – blacksite
Désolé, je voulais dire la valeur de pixel médiane entre ces lignes dans la direction y. – Delosari
Vous pouvez donc trouver les coordonnées du milieu de ce trapèze, puis indexer l'image pour trouver la valeur RVB. Travailler sur une solution maintenant .... – blacksite