Skip to content

Instantly share code, notes, and snippets.

@Abhinay1997
Last active August 15, 2019 03:50
Show Gist options
  • Save Abhinay1997/cfc8fd2360ec413943d5f61259011637 to your computer and use it in GitHub Desktop.
Save Abhinay1997/cfc8fd2360ec413943d5f61259011637 to your computer and use it in GitHub Desktop.
Sample showing the difference between GRBG and RGGB debayering on Panoptes FITS files.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import panoptes.utils.images.fits as fits\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from astropy.visualization import hist\n",
"from astropy.visualization.stretch import * \n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import colour_demosaicing"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"import astropy.io.fits as apy_fits"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"fits_data_2 = fits.getdata('example.fits.fz')\n",
"fits_data = fits.getdata('20190727T130044.fits.fz')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Wall time: 3.47 s\n"
]
}
],
"source": [
"%%time\n",
"hist_1,bins = np.histogram(fits_data,bins=250)\n",
"width = 0.7 * (bins[1] - bins[0])\n",
"center = (bins[:-1] + bins[1:]) / 2\n",
"plt.bar(center, hist_1, align='center', width=width)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Wall time: 1.81 s\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%%time\n",
"#we'll reshape and give it a try\n",
"dims = fits_data.shape\n",
"temp = fits_data.reshape((dims[0]*dims[1],))\n",
"_ = plt.hist(temp,bins=250)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Wall time: 1.31 s\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%%time\n",
"_ = hist(temp)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"x_GRBG = colour_demosaicing.demosaicing_CFA_Bayer_bilinear(fits_data,pattern='GRBG')\n",
"x_RGGB = colour_demosaicing.demosaicing_CFA_Bayer_bilinear(fits_data,pattern='RGGB')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"temp_x = x_GRBG\n",
"temp_x = temp_x.astype(np.uint16)\n",
"\n",
"temp_y = x_RGGB.astype(np.uint16)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's stretch the image and then check the histogram. In order to do this. We need to normalize the images first"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"hdu = apy_fits.PrimaryHDU(temp_x[:,:,0])\n",
"hdu.writeto('x_red.fits')\n",
"hdu = apy_fits.PrimaryHDU(temp_x[:,:,1])\n",
"hdu.writeto('x_green.fits')\n",
"hdu = apy_fits.PrimaryHDU(temp_x[:,:,2])\n",
"hdu.writeto('x_blue.fits')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"temp_x =temp_x/2**15\n",
"temp_y =temp_y/2**15"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x1e02e450fd0>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"\n",
"plt.imshow(temp_x,origin='lower')\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x1e02e4b1630>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(temp_y,origin='lower')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(3, 3476, 5208)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = np.array([temp_x[:,:,0],temp_x[:,:,1],temp_x[:,:,2]])\n",
"a.shape "
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"from PIL import Image"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"z = temp_x * 255"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"z = z.astype(np.uint8)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"l = Image.fromarray(z)\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"l.save('l.jpg')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Before saving, flip the image up-down inorder to orient properly*"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "pan-env",
"language": "python",
"name": "pan-env"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
@Abhinay1997
Copy link
Author

The image in the example is of a green laser on the night sky captured by a PANOPTES unit. The camera is by Canon and is supposed to use RGGB pixel pattern. However the debayering seems to work properly with GRBG.

@joshwalawender
Copy link

Looks like the color is good in the laser. Hard to tell in the sky. I'm not too familiar with PIL, but try image normalization in astropy.visualization. Here's example of code I've used:

from astropy import visualization as v
from matplotlib import pyplot as plt
plt.figure()
norm = v.ImageNormalize(ccd_2001sum, interval=v.PercentileInterval(99), stretch=v.LogStretch(1))
plt.imshow(ccd_2001sum, origin='lower', norm=norm)
plt.show()

You can also try other intervals and stretches.

@Abhinay1997
Copy link
Author

@joshwalawender, updated the gist to properly distinguish between RGGB and GRBG modes.

Thank you for the code snippet Josh. it will get me upto speed quite quickly.

@Abhinay1997
Copy link
Author

Clarification The FITS files have the zeroth pixel at the bottom left corner of the array. So first flip the array using np.flipud and then apply RGGB demosaicing which is the pattern used by Canon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment