Messier 94 - The Crocodile Eye Galaxy 2026 - Image Processing Walkthrough
May 19 2026
My 2026 image of Messier 94.
🔭 Project Summary
Target: Messier 94 – The Crocodile Eye Galaxy/ NGC 4736/ Cat’s Eye Galaxy / NGC 4736
Capture Dates: April 11, 20, and 21, 2026
Constellation: Canes Venatici • Distance: ≈ 16 million light-years
Type: Face-on spiral galaxy with bright central region, active inner ring, and faint extended outer disk
Imaging Period: April 11–21, 2026 • Total Integration: 12 h 49 m 30 s (LRGB)
Filters: L · R · G · B (ZWO 36 mm LRGB Gen II)
Telescope: William Optics 132 mm f/7 FLT APO Refractor with P-FLAT7A 0.8× reducer
Camera: ZWO ASI2600MM-Pro (−15 °C; Gain 0 LRGB)
Mount: iOptron CEM60 on custom steel pier
Processing: PixInsight (LRGB) & Photoshop
Location: Whispering Skies Observatory · Honeoye Falls, NY (USA)
Acquisition notes: L: 202 × 90 s; R: 103 × 90 s; G: 102 × 90 s; B: 106 × 90 s at −15 °C, Gain 0; total 12 h 49 m 30 s after culling bad or questionable subs.
Table of Contents Show (Click on lines to navigate)
Special Note
Welcome to the image-processing page for this project. You got here by following a link from the main Messier 94 project report, and you can return to that page using the back button in your browser.
Abbreviations Used
BXT BlurXTerminator by RC-Astro
CC Cosmetic Correction
CT Curves Transformation Process
DBE Dynamic Background Extraction Process
ET Exponential Transformation
HT Histogram Transformation
NXT NoiseXTerminator by RC-Astro
MLT Multiscale Linear Transform
PI PixInsight
PS Photoshop
SCNR Subtractive Chromatic Noise Reduction Process
SFS SubFrameSelector
SPCC SpectroPhotometric Color Calibration
STF Screen Transfer Function
STF->HT method – Drag the STF triangle to the base of HistogramTransformation, then apply it to the image to take it nonlinear.
SXT StarXTerminator by RC-Astro
WBPP Weighted Batch Preprocessing Script
Summary:
M94 Crocodile Eye Galaxy LRGB Processing Flow
Sequential summary of the M94 workflow, organized around the actual dependency chain from frame rejection through final PixInsight processing, star recombination, and Photoshop polish.
Processing this Image
(All Processing is done in PixInsight, with some final touches done in Photoshop)
The main processing challenge for this image was balancing M94’s bright inner core and ring structure against the much fainter extended outer disk. I used a conservative LRGB workflow: careful frame rejection, separate luminance and RGB preparation, star removal for nonlinear work, luminance-driven detail enhancement, controlled masking around the core and ring, and final star recombination before a light Photoshop polish.
1. Blink
First, I screened the data for thin-cloud frames and obvious defects.
Lum
6 frames removed for thin clouds.
Red
0 frames removed for thin clouds.
Green
4 frames removed for thin clouds.
Blue
0 frames removed for thin clouds
Darks
All looked OK.
Dark Flats
All looked OK.
Flats
all good.
A total of 10 frames were removed during Blink.
2. SubFrameSelector
Preserving fine detail was important, so I wanted to remove the subs that showed statistically significant detail degradation. To determine which frames to remove, I used SubFrameSelector to examine the FWHM size of stars and removed those outside the confidence bands.
Luminance Channel
Note the nightly pattern of star sizes increasing as the night progressed - star sizes increasing as the night progressed. I do not think this was dew; it was more likely atmospheric seeing. 25 frames marked for removal. A few frames were removed because their star sizes were too small. This is almost certainly due to clouds attenuating them - ones I missed during the Blink operation.
Now the red channel, where 11 frames were removed.
Red Channel
Now the Green Channel, where 7 frames were removed.
Green channel
And finally the Blue Channel, where 9 frames were removed.
Blue Channel
A total of 62 frames were removed during the SFS operation, for a total reduction of 1.55 hours.
3. WBPP 2.8.9
With the bad frames identified, I ran everything through WBPP with a quality-first configuration:
Reset everything
Load all lights
Load all flats
Load all darks
Selected maximum quality
Reference Image: auto, the default
Select the output directory for the WBPP folder
Enable CC for all light frames
Pedestal value: auto
Darks - set exposure tolerance to 0
Lights - set exposure tolerance to 0
Lights: all correction options selected except linear defect correction.
Enabled for Autocrop
I chose NOT to use Drizzle processing.
WBPP completed in 1:40:28 - no errors
WBPP Calibration View
WBPP Post Calibration View
WBPP Pipeline View
4. Load Master Images and Create Color Images
Load all master images and rename them.
Using ChannelCombination, create the Master RGB color image
The Individual L, R, G, and B master linear images.
Master RGB image.
5. Initial Processing of Linear Luminance Data
Run DBE for the linear luminance image. Use subtraction for the correction method. Choose a sampling plan that avoids the galaxies and bright stars. (see below)
Run BXT - correct only. This cleaned up the stars at the corners. There was not much to correct because the optics were performing well.
Run the PFSImage script to measure star sizes. X = 1.97 Y= 1.76. This will influence the values used in BXT.
Run full BXT. I used an enhanced set of values to shrink the stars more aggressively. These are about double the measured star sizes. See the BXT Panel Snapshot below.
Run NXT V3; refer to the parameters in the snapshot below.
Run SXT - no need to save the Lum stars, as we will not be using them.
Master L Image DBE Sampling Plan (click to enlarge)
Master L- Before DBE (click to enlarge)
Master L after DBE (click to enlarge)
Background Subtracted by DBE (click to enlarge)
Measuring Star Sizes with PFSImage Script (click to enlarge)
BXT Settings Used. (click to enlarge)
NXT Panel used. (click to enlarge)
Master Lum Before BXT Correct Only, After BXT Correct Only, After BXT Full, After NXT
Final Master Lum Image
Master Lum Starless Image (click to enlarge)
6. Initial Processing of Linear RGB data
Run DBE for the RGB linear image. Use subtraction for the correction method. Start with the same sampling plan from the Lum run. Choose a sampling plan that avoids the galaxies and bright stars. (see below)
Select a background preview, then set up and run SPCC. See the SPCC Panel shot below for the parameters used.
Run BXT - Correct only. This cleaned up the stars at the corners. There was not much to correct because the optics were performing well.
Run the PFSImage script to measure star sizes. X=1.65 Y = 1.61. This will influence the values used in BXT.
Run Full BXT - I am using an enhanced set of values to shrink stars more. These are about double the measured star sizes. See the BXT Panel Snapshot below.
Run NXT V3; refer to the parameters in the snapshot below.
Run SXT - this time we will save the RGB stars.
Master RGB Sampling Plan (click to enlarge)
Master RGB before DBE (click to enlarge)
Master RGB after DBE (click to enlarge)
Master RGB Background removed (click to enlarge)
Master RGB before SPCC (click to enlarge)
SPCC Panel showing parameters used.
SPCC Regression results.
Master RGB after SPCC.
PFSImage panel showing star sizes.
BXT Panel showing parameters used.
NXT Panel showing parameters used.
Master RGB Before BXT Correct Only, After BXT Correct Only, After BXT Full, After NXT
Master RGB Image before SXT.
Master RGB Starless Image. (click to enlarge)
7. Go Nonlinear
Using the STF → HT method, take the linear Luminance and RGB images nonlinear.
Using Seti Astro Star Stretch, take the RGB Star image nonlinear with two levels of star stretch:
1.5 stretch with 1.5 saturation boost
1.6 stretch, and 1.5 saturation boost
so that later we can choose which size stars to use.
Nonlinear Starting Lum Image (zoomed) (click to enlarge)
Nonlinear RGB image (zoomed) (click to enlarge)
Smaller Stars (Click to enlarge)
Larger Stars (click to enlarge)
8. Process the Nonlinear Lum Starless Image
Use GAME script to create a mask of the inner core region
Use GAME script to create a mask of the mid-core region
Open up the highlights by running HDRMT with levels=6, “To Lightness” checked, and “Lightness Mask” checked.
Apply CT to darken the background sky
Apply LHE with a scale of 26, contrast limit of 2.0, amount of 0.3, and an 8-bit histogram and the MID_MASK. This helps bring out smaller details.
Apply LHE with a scale of 226, contrast limit of 2.0, amount of 0.2, and a 10-bit histogram and the MID_MASK. This helps bring out larger details.
Apply NXT V3 now (see parameters in the screenshot below). I wanted to do this before sharpening and bringing out more detail.
Apply HDRMT with levels=6, “To Lightness” checked, and “Lightness Mask” checked with the Core_Mask
Apply CT with Core Mask
Apply LHE with a scale of 104, contrast limit of 2.0, amount of 0.5, and an 8-bit histogram and the MID_MASK. This helps bring out smaller details.
Apply MLT Sharpening (see params used in screenshot below)
Applied a final CT tweak.
Core_Mask (click to enalrge)
The initial image (click to enlarge).
After CT (click to enlarge)
After LHE Large Scale with MID_MASK (click to enlarge)
After NXT (click to enlarge)
After CT with Core_Mask (click to enlarge)
MLT Sharpen Params (click to enlarge
MID_Mask (click to enlarge)
After HDRMT (click to enlarge)
After LHE Small Scale with Mid_Mask (click to enlarge)
NXT Params used (click to enlarge)
Apply HDRMT with Core_Mask (click to enlarge)
After Larger Scale LHE with the MID_MASK (click to enlarge)
After Sharpening Run
After the Final CT
9. Now Process the RGB Starless Image
Open up the highlights by running HDRMT with levels=6, “To Lightness” checked, and “Lightness Mask” checked.
Adjust tone scale with CT - darken core and boost saturation
Apply CT with MID_MASK to adjust without touching the outer ring
Use RangeSelection to create a Range_Mask to cover the bright core area as well as the bright bluish ring around the core. See the params used below.
Running HDRMT with levels=5, checked, and “Lightness Mask” checked - use it WITH the Range_Mask
Apply CT with the Range_Mask
Use LRGBCombination to fold the L signal into the RGB. Default params used.
Use my brand new prototype PI script, Astro Color Mixer, to do the final color tweaks
Export as 16-bit TIFF to PS for a slight round of polishing.
The balance has gone somewhat red, so I wanted to back off on that, and I used another CT application to do so.
Initial RGB nonlinear image (click to enlarge)
After HDRMT (click to enlarge)
After CT adjustment (click to enlarge)
After LRGBCombination (click to enlarge)
Range_Mask zoomed in so you can see it better (click to enlarge)
After CT with Range Mask (click to enlarge)
After LRGBCombination (click enlarge)
After CT with MID_MASK (click to enlarge)
Range Mask (click to enlarge)
HDRMT with Range_Mask (click to enlarge)
LRGBCombination Panel.
Astro Color Mixer Panel with Adjustments Made (click to enlarge)
After PS polish
10. Add the Stars Back In
Using the ScreenStars Script, add stars back into our RGB starless image.
I tried using two levels of stars, and I found I like the look of the larger stars.
Image ready for Photoshop Polishing!
11. Export the Image to Photoshop for Polishing
Save the image as a TIFF 16-bit unsigned and move to Photoshop
The big issue here is cropping. I decided to zoom in a bit to allow the smallish galaxy (in the original field) to be more visually prominent.
I then did a little polishing using the Camera Raw filter.
Added Watermarks
Exported clear, watermarked, and web-sized JPEGs.
The Final Image
Alternatively, you can use the back arrow to return to the Messier 94 project page, or you can use the menu at the top of the page to continue your navigation.
Thanks,
Pat