This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/TDA3: Qustion about VLIB_goodFeaturestoTrack() function for c66x

Part Number: TDA3

Tool/software: TI-RTOS

Hi,

 I have some question about VLIB_goodFeaturestoTrack() function in C66x VLIB v3.3.03.

Q1. Are the followings correct?

 In "out", the value "255" is written in the coordinate position of the detected feature point.
"good_points_number" is the number of detected feature points and coincides with the number of "255" in the output image.

Q2. If Q1 is correct, I have an additional question as follows.

 Could you let me know about factors that are output only within the range of 0 to 31 of the Y coordinate and factors that the number of "255" does not match "good_points_number".

[Background of this questions]

The parameter is described  "The output buffer (\c out) will contain a value of 255 for each location containing the filtered feature."

I think that the value of "255" will be written at the coordinate position of the detected feature point. And, "Good_points_number" is the number of detected feature points, which is the same as the number of "255" in the output image.

However, when actually operated, the value of "255" in the output image was output only within the range of 0 to 31 of the Y coordinate, and the number was also different from "good_points_number".

Regards,
Kenshow

  • Hi Kenshow,

    I have forwarded your question to VLIB experts.

    Regards,
    Yordan
  • kenshow said:

    Q1. Are the followings correct?

     In "out", the value "255" is written in the coordinate position of the detected feature point.
    "good_points_number" is the number of detected feature points and coincides with the number of "255" in the output image.

    Yes this is correct.

    kenshow said:

    Q2. If Q1 is correct, I have an additional question as follows.

     Could you let me know about factors that are output only within the range of 0 to 31 of the Y coordinate and factors that the number of "255" does not match "good_points_number".

    By chance, is your width set to something close to 2048?

    If so, this will confirm you are running into a known bug reported on this release of VLIB.  This function was tested with image sizes less than 2^16 pixels (like less than 256x256).  I think the use case was to call it multiple times across an image which has been broken up into smaller blocks which were pulled into L2 SRAM using DMA.  This bug should be fixed in October time frame release.  By the way, we are targeting our next release to use DSP compiler version 8.2.1.

    In the mean time, you can call this function on images which are < 2^16 pixels as a workaround (perhaps split the image into 32 line slices).

    Regards,
    Jesse

  • Hi Jesse,

    I would like to check about maximum image size. Can I use the function image size of 2^16 pixels (like 256x256) as Maximum size?
    Or, should I use 255x255?

    Regards,
    Kenshow
  • Kenshow,

    To be careful, please use pixel dimensions which add to no more than 2^15 (32768). The problem was that the variable used for the pixel index was int16_t instead of int32_t. Due to the sign bit, it is probably safer to keep it to 32768 or less) (256x128).

    Jesse
  • Hi Jesse,

    Unfortunately, in case of Image size, 255x255 was NG.
    Are there any restrictions or conditions for the input image?
    For example, the number of columns in the input image must be a multiple of 8.

    Regards,
    Kenshow
  • Have you tried 256x128? I think this is the maximum size you can have. 255x255 is too large. My previous response said that the max size is 32768 total pixels.

    Jesse
  • Hi Jesse,

    I'm trying to use this function too, and in my work the size of the image is much greater than 256x128 ...

    Any chance I can find the new version of this function that you mention below that would have been released in October?

    Thank you
    Eddie