Fixed-pattern noise (FPN) correction

  • Hello,

    I would like to implement a FPN correction. I think the FPN can be done by buffering the current image from the camera when the FPN is activated and constantly substracting it from the incomming image stream. But this substraction should not happen for the first 4 bytes in the first line of the incomming image stream, because these contain an InFrameCounter.

    Can you help me with this va?


    Thanks

  • Hello Cam


    we have a VisualApplets example for shading correction which also uses an offset correction. See LINK

    This example and the corrections we usually do are based on the idea of saving the dark noise as an image file to the PC and uploading it back to a correction value buffer on the frame grabber.


    If I understand you explanations correct you want to directly use a camera image e.g. the first image after acquisition start and store this in a buffer on the frame grabber. I made a simple VisualApplets example for this. You can select a camera image for "re-use" in a loop.

    Open the design and start the simulation for e.g. 10 image. The build in image simulator will generate a first image of pixel values 100. After this a rolling pattern is generated. The design will use this first image as reference. Note that you need to load any 1024x1024 image do Sim Source "Any dummy imge as PixelToImage has no simulation" as PixelToImage cannot be simulated.


    pasted-from-clipboard.png


    pasted-from-clipboard.png


    The design will not do the correction for a given area e.g the first four pixel. The implementation is quite simple.

    pasted-from-clipboard.png


    See VA file attached.


    Johannes

    Files


    Johannes Trein
    Teamleader Applications and Development
    SiliconSoftware GmbH
    https://silicon.software/wp-content/uploads/siso-logo-animation.gif



  • Concerning the usage of a FPN/PRNU or Shading correction in VA designers should look into this thread in case you want to use that approach in a microEnable5-marathon platform. That platfrom is using shared memory where some extra attention is required.

    Björn RuddeMicroSiSo.png
    Senior Technical Sales and
    Field Application Engineer

    please:thumbup:

  • Thank you vary much and sorry for my late response. I am looking forward to analyse your va in detail but i think you solved my problem. (my platform is: microEnable 5 ironman VD8-PoCL)