#!/bin/env python # encoding: utf-8 import pyfits from optparse import OptionParser import numpy from scipy import * parser = OptionParser() (options, args) = parser.parse_args () if (len(args) != 2): print "Usage : suppr_fond.py input.fits output.fits" exit(1) # E# Ouverture de l'image fits en argument hdulist = pyfits.open(args[0]) scidata = hdulist[0].data if (scidata.shape != (2048,2048)): print "Erreur ! l'image ne fait pas 2048 x 2048 !" exit(2) # Estimation fond (4 coins) tf = 256 # taille fenetre fond, en pix fond_bas = .5 * (mean(scidata[:tf,:tf]) + mean(scidata[:tf,2048-tf:])) fond_haut= .5 * (mean(scidata[2048-tf:,:tf]) + mean(scidata[2048-tf:,2048-tf:])) a = float(fond_haut - fond_bas) / (2048-tf) b = fond_haut - a * (2048 - tf/2.) fond=numpy.zeros((2048,2048)) for i in range(2048): fond[i,:] = a * i + b scidata -= fond prihdr = hdulist[0].header prihdr.add_history('Suppression fond gradient vertical') hdulist[0].data = scidata hdulist.writeto(args[1],clobber=True) hdulist.close()