TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] TDA2:[TDA/OpenCV/用例修改]希望通过修改 opencvopdilation 用例来实现我的代码

Guru**** 2046970 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/687732/tda2-tda-opencv-usecase-modification-want-to-implement-my-code-by-modifying-the-opencvopencldilation-usecase

器件型号:TDA2

(VISION SDK 版本: processor_sdk_vision_03_03_00_00)

你(们)好

我是 TDA2x EVB 板和视觉应用板的新手

我想实施使用 OpenCV 的算法、并 通过修改示例 usecase 和 ALG_plugins (vIP_single_cam_opencvopenclasdilation / opencvopenclasimation)来实现它。

[问题]

我想 应用我的 alogirhtm 代码 并将其显示在显示器上。

我应该在哪里修改代码?

我开始进行如下修改、但是当我删除"CV::dilate"代码时、它会显示处理器使用情况下的黑色图像。

之前的代码

修改了代码

void* opclindilationThreadFunc (void* args)

   while (1)
   {
       CV::Mato openCLDilationInputMat;
       CV::Mat openCLDilationOutputMat;
       CV::UMat openCLDilationInputUMat;
       CV::UMat openCLDilationOutputUMat;

       if (!gOpenCLDilationThreadStared)
       {
           CV::OCL::setUseOpenCL (1);
           gOpenCLDilationThreadStarted = 1;
       }

       /*等待生产线程指向当前输入
        和输出缓冲器
        *
       while (!g_CAC)
       {
           usleep(1000);
       }

       pthread_mutex_lock (&gOpenCLDilationMtx);

       /*
        *\brief 使用 OpenCV 进行计算
        *
       openCLDilationInputMat = CV::cvarrToMat (gOpenCLDilationKernelArgs.inputImage、false);
       openCLDilationOutputMat = cv::cvarrToMat (gOpenCLDilationKernelArgs.outputImage、false);

       openCLDilationInputUMat = openCLDilationInputMat。getUMat (CV:ACCESS_RW);
       openCLDilationOutputUMat = openCLDilationOutputMat。getUMat (CV:ACCESS_RW);

       cv::dilate (openCLDilationInputUMat、openCLDilationOutputUMat、cv::Mat ());


       openCLDilationInputUMat.release();
       openCLDilationOutputUMA.release();
       openCLDilationInputMat.release();
       openCLDilationOutputMat.release();

       G_CAC = 0;

       pthread_mutex_unlock (&gOpenCLDilationMtx);
   }
   pthread_exit (&G);
   返回((void*) 0);

void* opclindilationThreadFunc (void* args)

   while (1)
   {
       CV::Mato openCLDilationInputMat;
       CV::Mat openCLDilationOutputMat;
       CV::UMat openCLDilationInputUMat;
       CV::UMat openCLDilationOutputUMat;

       if (!gOpenCLDilationThreadStared)
       {
           CV::OCL::setUseOpenCL (1);
           gOpenCLDilationThreadStarted = 1;
       }

       /*等待生产线程指向当前输入
        和输出缓冲器
        *
       while (!g_CAC)
       {
           usleep(1000);
       }

       pthread_mutex_lock (&gOpenCLDilationMtx);

       /*
        *\brief 使用 OpenCV 进行计算
        *
       openCLDilationInputMat = CV::cvarrToMat (gOpenCLDilationKernelArgs.inputImage、false);
       openCLDilationOutputMat = cv::cvarrToMat (gOpenCLDilationKernelArgs.outputImage、false);

       openCLDilationInputUMat = openCLDilationInputMat。getUMat (CV:ACCESS_RW);
       openCLDilationOutputUMat = openCLDilationOutputMat。getUMat (CV:ACCESS_RW);

 
  openCLDilationOutputUMat = openCLDilationInputUMat;
  openCLDilationOutputMat = openCLDilationInputMat;


       openCLDilationInputUMat.release();
       openCLDilationOutputUMA.release();
       openCLDilationInputMat.release();
       openCLDilationOutputMat.release();

       G_CAC = 0;

       pthread_mutex_unlock (&gOpenCLDilationMtx);
   }
   pthread_exit (&G);
   返回((void*) 0);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您在进行任何更改之前看到的图像是什么?