spiral search pattern for block matching

xiaoxiao2021-02-28  75



光流算法中为了找到匹配的块,可以使用螺旋搜索的图案,那么如何生成这个图案呢,一下opencv中一段代码:

   // use spiral search pattern     //     //     9 10 11 12     //     8  1  2 13     //     7  *  3 14     //     6  5  4 15          //... 20 19 18 17     //         for( i = 0; i < min_count; i++ )     {         // four cycles along sides         int x = -i-1, y = x;                 // upper side         for( j = -i; j <= i + 1; j++, ss_count++ )         {             ss[ss_count].x = ++x;             ss[ss_count].y = y;         }                 // right side         for( j = -i; j <= i + 1; j++, ss_count++ )         {             ss[ss_count].x = x;             ss[ss_count].y = ++y;         }                 // bottom side         for( j = -i; j <= i + 1; j++, ss_count++ )         {             ss[ss_count].x = --x;             ss[ss_count].y = y;         }                 // left side         for( j = -i; j <= i + 1; j++, ss_count++ )         {             ss[ss_count].x = x;             ss[ss_count].y = --y;         }     }

经本人修改后,顺次连接这些点可以打印出一下图案:

即从这个漩涡的中心开始顺时针遍历周围的像素,从而找到最佳匹配块的首次出现位置。

转载请注明原文地址: https://www.6miu.com/read-53980.html

最新回复(0)