【问题标题】:what is the opencv code flow for the resize function using bicubic c++?使用 bicubic c++ 的 resize 函数的 opencv 代码流是什么?
【发布时间】:2019-07-04 20:06:01
【问题描述】:

我正在尝试理解 opencv 4.0 中的 resize 函数,当我使用双线性时,我可以遵循 resize.cpp hal::resize 中发生的代码,(modules/imgproc/src)。但是当我更改为双三次时,它不会遵循相同的流程(即使代码具有 INTER_CUBIC 的条件)。我在 hal::resize 中使用 gdb 设置断点,对于双三次,它没有到达断点。

我试图找出代码在哪里运行,正在执行哪个部分。

当我调试时,我可以看到 bilinear 和 lanczos 的数据,但看不到 bicubic !但我假设它可能是 gdb 问题,数据是:Resize.cpp 对于线性:在 hal::resize.cpp:3706 的末尾

$1 = {0, 1, 2, 3, 4, 5, 9, 10, 11, 12}
(gdb) p yofs[0]@10
$2 = {0, 1, 3, 4, 6, 7, 9, 10, 12, 13}
(gdb) p ialpha[0]@10
$3 = {1536, 512, 1536, 512, 1536, 512, 512, 1536, 512, 1536}
(gdb) p ibeta[0]@10
$4 = {1536, 512, 512, 1536, 1536, 512, 512, 1536, 1536, 512}
(gdb) 

for lanczos
(gdb) p xofs[0]@10
$5 = {0, 1, 2, 3, 4, 5, 9, 10, 11, 12}
(gdb) p yofs[0]@10
$6 = {0, 1, 3, 4, 6, 7, 9, 10, 12, 13}
(gdb) p ialpha[0]@10
$7 = {-31, 114, -312, 1830, 579, -188, 64, -8, -31, 114}
(gdb) p ibeta[0]@10
$8 = {-31, 114, -312, 1830, 579, -188, 64, -8, -8, 64}```

【问题讨论】:

    标签: c++ opencv resize


    【解决方案1】:

    好的, 我想这是一个opencv编译问题,我只是设置了 WITH_IPP OFF 加上其他多线程标志,以保证我只使用单线程,并且我启用了 ENABLE_PROFILING=ON ,除了在配置文件中是调试模式。现在它显示的是双三次的数据。

    cmake -D WITH_TBB=OFF -D WITH_OPENMP=OFF -D WITH_IPP=OFF -D ENABLE_PROFILING=ON -D CMAKE_BUILD_TYPE=调试 -D BUILD_EXAMPLES=OFF -D WITH_NVCUVID=OFF -D WITH_CUDA=OFF

    【讨论】:

      猜你喜欢
      • 2020-10-07
      • 2011-12-01
      • 2018-06-02
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      相关资源
      最近更新 更多