Contents
Pyramid Star ID from a camera image
The focal length scaling must be known to high precision to successfully identify stars from a real image. The steps are written out here to be instructive but also see the listed support functions.
This demo identifies stars in a image of the Pleiades cluster, including some of its brightest stars:
17702: Alcyone, brightest star in the Pleiades, magnitude 2.86 17499: Electra, magnitude 3.7 17573: Maia, magnitude 3.86 17608: Merope, magnitude 4.17 17531: Taygeta, magnitude 4.29
See also: LoadStarImage, FitHist, CoarseCentroids, ProcessCatalog, ProcessStarImage, StarIDPyramid, DrawStarImageCentroids
%-------------------------------------------------------------------------- % Copyright (c) 2008 Princeton Satellite Systems, Inc. % All rights reserved. % Since 2019.1 %-------------------------------------------------------------------------- disp('Demo of StarIDPyramid, real image --')
Demo of StarIDPyramid, real image --
Info on the camera used to take the test image
nPixels = 1024; % image width in pixels, square in this case pixWidth = 15; % pixel size in microns fLength = 43.169; % focal length in mm % calculation field of view and scaling fOV = 2*atan(0.5*nPixels*pixWidth*1e-3/fLength); fScale = fLength/(pixWidth*1e-3); pixRes = fOV/nPixels;
Star catalog with appropriate limits
jD = Date2JD([2016 1 1]); minInt = 6; % minimum intensity angRes = 5*pixRes; % minimum resolution between stars starData = ProcessCatalog( minInt,fOV,angRes,jD);
Keeping 2469 brightest stars across FOVs
Process a stored image
[pixels,d.img] = LoadStarImage( 'Plejades.tif', []); nROI = 5; % size of region of interest in pixels % find the sky background in the image for thresholding [bNoise,R] = FitHist( pixels ); % compute the centroids optCOM = CoarseCentroids; optCOM.T = bNoise + 3*R; optCOM.nROI = nROI; optCOM.b = bNoise; [r0, iC, dCOM] = CoarseCentroids( pixels, optCOM, true );
Blob combine operations: 1
Identify stars
options = StarIDPyramid;
options.pixelMapScale = fScale;
options.angleTolerance = 1.5*pixRes;
% transform centroids to center of image
starMeas = struct;
starMeas.pixelLocation = r0-nPixels/2;
starID = StarIDPyramid( starMeas, starData, options );
Display results
Hipparcos IDs of the stars
hipID = starData.starCatalog.name4(starID(starID~=0)); starID(starID~=0) = hipID; fprintf('Star IDs: %s\n',num2str(hipID)); DrawStarImageCentroids( pixels, r0(:,1:16), starID ); %--------------------------------------
Star IDs: 17702 17499 16369 17573 14838 19038 17608 15549 17531 13914 15737