我正在试验不同类型的OpenCV的FAST探测器。
可用的类型有:
TYPE_5_8,
TYPE_7_12,
TYPE_9_16
最后一张是默认值,并由此照片描述:
我认为TYPE_7_12
表示以下内容:
而TYPE_5_8
意味着:
现在,我使用阈值30和TYPE_5_8
运行FAST检测器,并且以下图像部分不会产生单个关键点:
基于documentation说:
现在,如果存在一组n个连续的像素,则像素p是一个角 圆圈中的像素(16个像素),它们都比I_p +更亮 t,或全部比I_p - t
更暗
,我预计中心像素(值为203的像素)将被检测为关键点。显然有5个连续像素的强度低于203-30。
然而没有发现任何东西。为什么呢?
答案 0 :(得分:0)
当8个连续像素较低/较高时,中心像素将被检测为关键点。 您可以阅读以下源代码,对于type_5_8,0-8、2-10表示0-0、2-2
int d = tab[ptr[pixel[0]]] | tab[ptr[pixel[8]]];
if( d == 0 )
continue;
d &= tab[ptr[pixel[2]]] | tab[ptr[pixel[10]]];
d &= tab[ptr[pixel[4]]] | tab[ptr[pixel[12]]];
d &= tab[ptr[pixel[6]]] | tab[ptr[pixel[14]]];
if( d == 0 )
continue;
d &= tab[ptr[pixel[1]]] | tab[ptr[pixel[9]]];
d &= tab[ptr[pixel[3]]] | tab[ptr[pixel[11]]];
d &= tab[ptr[pixel[5]]] | tab[ptr[pixel[13]]];
d &= tab[ptr[pixel[7]]] | tab[ptr[pixel[15]]];