In my plate-solver, I decided to process each color channel as an independent gray-scale image and then take stars that were detected in the same position across all channels. I suspect, most plate solvers convert a color image to gray-scale by extracting luminosity and processing it once. ![]() ![]() Once the plate-solver decides on the star threshold, it will apply it to the image to find stars. If we draw the line too far to the right, we will miss a lot of dim stars, but our signal-to-noise ratio will be high. However, we will also pick up more noise. ![]() The further left we draw the line, the more stars we will detect. The exact place to draw the line requires fine-tuning. If we draw the line anywhere between 190 and 253 we will have most of the stars on one side of the line, while the rest of the image is on the other side. It is fairly easy to see on the histogram that most of the image is clustered around the 25 – 190 color range and there is an uptick after 253. Horizontal axis – color channel value, Vertical axis – number of pixels of corresponding color value.Įlephant’s Trunk nebula color distribution histogram To build a color histogram we need to count how many pixels of every single color value there are in the image. Each color channel has a value between 0 and 255. We are going to be looking at color images, which are made of 3 channels – Red, Green, and Blue. The color histogram represents the distribution of color in the image. Those algorithms can analyze one pixel at a time, so how can we tell if we are looking at the pixel of the star, or a pixel of the nebula under the star? Color histograms to the rescue! However, plate solvers aren’t sporting neural networks and instead rely on discrete algorithms to find stars. However, how do you find stars programmatically? As humans, our brains recognize stars immediately because they run fairly complex neural networks. The first thing that any plate-solver must do is find stars on the image. If you’ve come here to learn what PlaneWave Solve2 does under the hood – I am sorry to disappoint you. Since my plate solver works, I expect other plate-solvers to follow similar principles in their implementation. I took the white paters and public documentation of existing plate-solvers and implemented my own program. Frankly, I do not know what they do exactly. This article doesn’t describe the implementation of any particular plate-solver. Here’s how ASTAP describes its algorithm. We will look at how they extract stars from the image and scan the catalog of stars looking for matches. ![]() We will not be covering blind plate solvers in this post. Here’s the whitepaper on for those interested in more details. They extract star signatures (hashes) from the image and search that index for matches. Blind plate-solvers maintain a global inverse index of an entire night sky. They are quicker, have smaller star databases and consume less CPU.Įven though these programs do seemingly similar jobs, their star matching algorithms are different. Local plate-solvers, like ASTAP or PlaneWave Solve2, require a hint about approximate location in the sky and telescope field of view to work.They usually take more time and are more compute-intensive. Blind plate solvers, like or All Sky Plate Solver, take completely arbitrary pictures of the night sky and resolve them without any additional hints about their approximate location.There are two categories of plate-solver programs – blind plate solvers and local ones. Step 6: Calculate projection coordinate system.Step 4: Search the star catalog and build star quads.Step 3: Star quads of the reference image.
0 Comments
Leave a Reply. |