Promblems about RxImageLink & TxImageLink

  • Hello Lily,

    i'm not an Expert but i might see a little mistake so far.

    The sync operator waits for an image on both inputs. While the sync waits there will be no image at the Tx image link. Also no image at the Rx image link. So the Sync will wat forever. Deadlock.

    Try to add a first dummy image/pixel parallel to the Rx image link operator. So the sync will recieve an input for the first iteration and from the second on the Rx Link provides the next.


    i attach an example i used for something similar.


    Greetings Robert.

  • Dear Robert,

    Thanks for your quick reply. I got it.

    Another little question I need your help. How to get the line from Row-0 to Row-N one by one line from one image when we simulate the processing cycle for N times. I tried to use ImageBuffe/ ImageFifo/Register and select line buffer but it only output the first line everytime. Woul you pls. help to handle this?

    Another question is how to change the Image from 1D to 2D?

    Thanks a lot!

    pasted-from-clipboard.png

  • Hello Lily,


    i hope this may help you.

    Try to use the operator "SplitImage" and limit the image height to one Line. The Format Valt_1D or Valt 2D is free to choose after this operator.

    For the little example i atteched the result will be all lines one by one.


    Greetings Robert.

  • Hi Robert,

    Thanks for your suggestions. I also tried to use the operator SplitImage. It will split the image into 1024 lines one by one together when we simulat the process for one time. If we simulate the process on second time, it will run this process again. I'm afraid it will use more resources of the system.

    And actually we need to get only one line when we run this process once. Then we get the second line when the process goes on the sceond time. And so on. It will be used in our process for cyclic operation and also need so much resources. Do you think it's possible or not?

    pasted-from-clipboard.png

  • Hello Lily,


    oh i got it. Sure SplitImage uses the complete input image to guide line by line further. When the simulation is started all lines got simulatet before stoping so its not neccessary to start different cycles.

    In Reference to the design in the first post it's possible to simulate all ines at once and watch in the probes what happend from line to line.


    If you want to use diffrent Input images and select lines from the diffrent inputs or selct some lines from an example image then im afraid this operator alone wont work.

    I'm afraid i don't really know how to stop and start the simulation for every line. A workaround might be to insert Lines as sources instead of a complete image.


    Meybe the SiSo support can provide a good hint.


    Greetings Robert.

  • Dear Robert,


    Thanks for your kindness and help. And What's the meaning of "Meybe the SiSo support can provide a good hint."?

    Another question: We got the CenterX & CenterY of all the objects After the blob analysis. If we want to combine two or more closed objects. Do you think is it possible to realize it through comparing the D-value of each CX & CY of all the objects? How to get the D-value of each pixel of one line?


    Greetings Lily

  • Dear Robert,


    Thanks for your kindness and help. And What's the meaning of "Maybe the SiSo support can provide a good hint."? I still think that it's not better to use the SplitImage operator to get hundreds of images to realize recursion operation for hundreds of simulation processes.

    Another question: We got the CenterX & CenterY of all the objects After the blob analysis. If we want to combine two or more closed objects. Do you think is it possible to realize it through comparing the D-value of each CX & CY of all the objects? How to get the D-value of each pixel of one line?


    Greetings Lily

  • Hello Lily,


    I'm very sorry. I didn't noticed that this thread got marked as resolved.


    Thinking back to your problem with the recursive function. The right choice ot simulate your code line by line might depend on the aquisition method. I assumed you're using a line scan camera so in the runtime everything will work with one line after another. By aquiring the complete image at once it may require to split all lines.

    When you use different images and you want to take one line of this frame, then it can be realised with an line selector.

    I'm just a beginner myself an work with Visual Applets sometimes, so i apologise that i can't provide more help so far.


    The second Question. I recommend to open a new thread so someone with more expearience will see the post. So far i haven't worked with the va Blop Analysis yet.


    Greetings Robert.

  • Hi


    first of all thanks to Robert B. I am very happy that VisualApplets users help each other.


    First of all let me add some idea on the recursion algorithm. As Robert mentioned you need to add a seed just as Robert did in his example. Note that operator ImageNumber can be set to a single shot counter which avoids overflows and another seed in the second image.

    The recursion loop will definitely require a buffer inside the loop. Otherwise you will obtain a deadlock when you use the implementation in hardware. Note that deadlocks cannot be detected with the simulation as they are timing dependent.

    Lily let us know if the recursion shall be performed for each image or each line? Could you explain the desired algorithm to us?


    About SplitImage. I assume you are using a line scan camera, so the output link of the camera module is set to VALT_LINE1D. Is that correct?

    Otherwise if you want to convert from 2D to 1D use operator AppendImage. This module has a parameter to define the number of simulation lines.

    pasted-from-clipboard.png


    Lily you can attach your .va files to the post. Maybe this will clarify a little.


    Johannes


    Johannes Trein
    Group Leader R&D
    frame grabber

    Basler AG