How to get the Maximum pixel value from a line without knowing the width of the line?

  • Dear All,


    I have an applet created using VQ4-GE card which involves following modules:

    1. Image Acquisition
    2. Threshold
    3. Blob Analysis

    After blob analysis, they are filtered by their Area (size) which then outputs the binarized result with unknown width i,e, 'it might vary according to the number of blobs'.

    Now the problem is that I need to get a single pixel with the maximum value! , but since i don't know the width of the line it seems difficult to get the required pixel.


    Can anyone give me a solution for this? I have attached the sample applet for reference....


    P.S I have used ResynctoLine operator , but since my applet has consumed resources more than 90%! and also I need to use it for 30 times which results in overmapping of resources.

    Defect&EjectionSettings_v1.0.va

  • Dear JSuriya,


    the problem can be soved quite easy. You figured right RowMax gives the maximum value of all pixels seen in the corresponding row. So the last pixel is always the absolute maximum in the row. So the task at hand is to get the last Pixel and remove all other pixel. To get the last Pixel you may use the operator IsLastPixel (library: Synchronzation) . Using this operator you don't need to know how long the row is.

    I modified the testdesign you added accordingly.


    The Part concerning the ResynctoLine I didn't get. Can you explain that in more detail?


    Best regards,

    Björn

  • Hi Roeger,


    thanks for the solution that you have given to my problem. But the operator 'IsLastPixel' you mentioned is not available for VQ4-GE frame grabber and so it is replaced with dummy operator in my design. Please find the attached images for reference. Can I know for which frame grabber is that 'IsLastPixel' operator available?


    And the ResynctoLine operator gets the last pixel value of a line and replaces it with the entire pixels in a line. So it is possible to get the very first pixel of a line and removing all other pixels. But as I already said that it occupies more resources when I try to implement it for 30 times.


    So I need some other solution for the problem I mentioned!.


    IsLastPixel_Replacedwith_DummyOperator.JPGSynchronizationLibraryVQ4_VA3.0.JPG

    Thanks,

    Jayasuriya

  • Dear Jayasuriya,


    I think it's more a question of which version of Visual Applets you are using than of the Plattform. The operator is relativly new and was included in Visual Applets 3.06. If your Version is older than that, you can update to a newer version.

    The link to get the update is either in the product information(you may register for that newsletter at productinfo@silicon-software.de) or you can send an eMail to our support(support@silicon-software.de) to get the link for the current Version (VA 3.1).


    Best regards,

    Björn

  • Dear Jayasuriya,


    I can offer one other solution you could try. In this Design the "Register" always gets the highest value. The CreateBlankImage generates an Image of the dimensions 1x1 Pixel. Using a SyncToMin the Result of RowMax is synchronized to that 1Pixel image at the end of a Line.


    It's not possible to simulate this kind of design (it uses signal operations). But you can try it. I think this should also do the job. :)


    Best regards,

    Björn

  • Dear Roeger,


    Thank you very much for all the efforts to give solutions for my problem. Yes I got the latest version of Visual applets and I used IsLastPixel operator which works well!:)


    Regards,

    Jayasuriya