/* This is AGAST and OAST, an optimal and accelerated corner detector
based on the accelerated segment tests
Below is the original copyright and the references */
/*
Copyright (C) 2010 Elmar Mair
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
*Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
*Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
*Neither the name of the University of Cambridge nor the names of
its contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
The references are:
* Adaptive and Generic Corner Detection Based on the Accelerated Segment Test,
Elmar Mair and Gregory D. Hager and Darius Burschka
and Michael Suppa and Gerhard Hirzinger ECCV 2010
URL: http://www6.in.tum.de/Main/ResearchAgast
*/
#include "agast_score.hpp"
#ifdef _MSC_VER
#pragma warning( disable : 4127 )
#endif
namespace cv
{
void makeAgastOffsets(int pixel[16], int rowStride, int type)
{
static const int offsets16[][2] =
{
{-3, 0}, {-3, -1}, {-2, -2}, {-1, -3}, {0, -3}, { 1, -3}, { 2, -2}, { 3, -1},
{ 3, 0}, { 3, 1}, { 2, 2}, { 1, 3}, {0, 3}, {-1, 3}, {-2, 2}, {-3, 1}
};
static const int offsets12d[][2] =
{
{-3, 0}, {-2, -1}, {-1, -2}, {0, -3}, { 1, -2}, { 2, -1},
{ 3, 0}, { 2, 1}, { 1, 2}, {0, 3}, {-1, 2}, {-2, 1}
};
static const int offsets12s[][2] =
{
{-2, 0}, {-2, -1}, {-1, -2}, {0, -2}, { 1, -2}, { 2, -1},
{ 2, 0}, { 2, 1}, { 1, 2}, {0, 2}, {-1, 2}, {-2, 1}
};
static const int offsets8[][2] =
{
{-1, 0}, {-1, -1}, {0, -1}, { 1, -1},
{ 1, 0}, { 1, 1}, {0, 1}, {-1, 1}
};
const int (*offsets)[2] = type == AgastFeatureDetector::OAST_9_16 ? offsets16 :
type == AgastFeatureDetector::AGAST_7_12d ? offsets12d :
type == AgastFeatureDetector::AGAST_7_12s ? offsets12s :
type == AgastFeatureDetector::AGAST_5_8 ? offsets8 : 0;
CV_Assert(pixel && offsets);
int k = 0;
for( ; k < 16; k++ )
pixel[k] = offsets[k][0] + offsets[k][1] * rowStride;
}
// 16 pixel mask
template<>
int agast_cornerScore<AgastFeatureDetector::OAST_9_16>(const uchar* ptr, const int pixel[], int threshold)
{
int bmin = threshold;
int bmax = 255;
int b_test = (bmax + bmin) / 2;
short offset0 = (short) pixel[0];
short offset1 = (short) pixel[1];
short offset2 = (short) pixel[2];
short offset3 = (short) pixel[3];
short offset4 = (short) pixel[4];
short offset5 = (short) pixel[5];
short offset6 = (short) pixel[6];
short offset7 = (short) pixel[7];
short offset8 = (short) pixel[8];
short offset9 = (short) pixel[9];
short offset10 = (short) pixel[10];
short offset11 = (short) pixel[11];
short offset12 = (short) pixel[12];
short offset13 = (short) pixel[13];
short offset14 = (short) pixel[14];
short offset15 = (short) pixel[15];
while(true)
{
const int cb = *ptr + b_test;
const int c_b = *ptr - b_test;
if(ptr[offset0] > cb)
if(ptr[offset2] > cb)
if(ptr[offset4] > cb)
if(ptr[offset5] > cb)
if(ptr[offset7] > cb)
if(ptr[offset3] > cb)
if(ptr[offset1] > cb)
if(ptr[offset6] > cb)
if(ptr[offset8] > cb)
goto is_a_corner;
else
if(ptr[offset15] > cb)
goto is_a_corner;
else
goto is_not_a_corner;
else
if(ptr[offset13] > cb)
if(ptr[offset14] > cb)
if(ptr[offset15] > cb)
goto is_a_corner;
else
goto is_not_a_corner;
else
goto is_not_a_corner;
else
goto is_not_a_corner;
else
if(ptr[offset8] > cb)
if(ptr[offset9] > cb)
if(ptr[offset10] > cb)
if(ptr[offset6] > cb)
goto is_a_corner;
else
if(ptr[offset11] > cb)
if(ptr[offset12] > cb)
if(ptr[offset13] > cb)
if(ptr[offset14] > cb)
if(ptr[offset15] > cb)
goto is_a_corner;
else
goto is_not_a_corner;
else
goto is_not_a_corner;
else
goto is_not_a_corner;
else
goto is_not_a_corner;
else
goto is_not_a_corner;
else
goto is_not_a_corner;
else
goto is_not_a_corner;
else
goto is_not_a_corner;
else
if(ptr[offset10] > cb)
if(ptr[offset11] > cb)
if(ptr[offset12] > cb)
if(ptr[offset8] > cb)
if(ptr[offset9] > cb)
if(ptr[offset6] > cb)
goto is_a_corner;
else
if(ptr[offset13] > cb)
if(ptr[offset14] > cb)
if(ptr[offset15] > cb)
goto is_a_corner;
else
goto is_not_a_corner;
else
goto is_not_a_corner;
else
goto is_not_a_corner;
else
if(ptr[offset1] > cb)
if(ptr[offset13] > cb)
if(ptr[offset14] > cb)
if(ptr[offset15] > cb)
goto is_a_corner;
else
没有合适的资源?快使用搜索试试~ 我知道了~
QT5.9.5 mingw编译+opencv3.4.1
共9833个文件
cpp:1374个
obj:1211个
hpp:800个
5星 · 超过95%的资源 需积分: 10 48 下载量 107 浏览量
2018-06-14
11:59:15
上传
评论
收藏 729.54MB RAR 举报
温馨提示
使用QT5.9.5 mingw编译工具进行编译,对于使用QT 且编译器为mingw的小伙伴有一定帮助。
资源推荐
资源详情
资源评论
收起资源包目录
QT5.9.5 mingw编译+opencv3.4.1 (9833个子文件)
objects.a 35.81MB
objects.a 31.34MB
objects.a 24.45MB
objects.a 15.14MB
objects.a 11.86MB
objects.a 11.86MB
objects.a 10.65MB
objects.a 10.47MB
objects.a 10.03MB
objects.a 8.81MB
objects.a 6.45MB
liblibprotobuf.a 6.16MB
objects.a 5.85MB
objects.a 5.65MB
objects.a 4.61MB
objects.a 4.39MB
objects.a 3.67MB
objects.a 3.13MB
objects.a 3.1MB
objects.a 2.97MB
objects.a 2.91MB
objects.a 2.75MB
libIlmImf.a 2.36MB
objects.a 2.23MB
objects.a 2.2MB
objects.a 1.99MB
objects.a 1.75MB
libopencv_core341.dll.a 1.65MB
libopencv_core341.dll.a 1.65MB
objects.a 1.63MB
libopencv_ts341.a 1.56MB
objects.a 1.51MB
objects.a 1.26MB
objects.a 1.17MB
objects.a 1.16MB
liblibwebp.a 1.03MB
objects.a 979KB
objects.a 971KB
objects.a 954KB
objects.a 863KB
libopencv_stitching341.dll.a 819KB
libopencv_stitching341.dll.a 819KB
objects.a 780KB
liblibtiff.a 719KB
libopencv_videostab341.dll.a 625KB
libopencv_videostab341.dll.a 625KB
libopencv_imgproc341.dll.a 624KB
libopencv_imgproc341.dll.a 624KB
objects.a 587KB
libopencv_features2d341.dll.a 550KB
libopencv_features2d341.dll.a 550KB
libopencv_dnn341.dll.a 547KB
libopencv_dnn341.dll.a 547KB
liblibjasper.a 521KB
liblibjpeg.a 511KB
libopencv_superres341.dll.a 484KB
libopencv_superres341.dll.a 484KB
libopencv_calib3d341.dll.a 479KB
libopencv_calib3d341.dll.a 479KB
liblibpng.a 467KB
libopencv_photo341.dll.a 463KB
libopencv_photo341.dll.a 463KB
libopencv_objdetect341.dll.a 426KB
libopencv_objdetect341.dll.a 426KB
libopencv_highgui341.dll.a 425KB
libopencv_highgui341.dll.a 425KB
libopencv_videoio341.dll.a 423KB
libopencv_videoio341.dll.a 423KB
libopencv_ml341.dll.a 414KB
libopencv_ml341.dll.a 414KB
objects.a 389KB
libopencv_video341.dll.a 386KB
libopencv_video341.dll.a 386KB
libopencv_flann341.dll.a 383KB
libopencv_flann341.dll.a 383KB
libopencv_shape341.dll.a 382KB
libopencv_shape341.dll.a 382KB
libopencv_imgcodecs341.dll.a 365KB
libopencv_imgcodecs341.dll.a 365KB
objects.a 311KB
objects.a 300KB
objects.a 269KB
objects.a 261KB
objects.a 250KB
objects.a 248KB
objects.a 179KB
libzlib.a 154KB
objects.a 129KB
objects.a 109KB
objects.a 105KB
objects.a 76KB
libopencv_test_flann_pch_dephelp.a 75KB
libopencv_flann_pch_dephelp.a 75KB
objects.a 57KB
objects.a 33KB
objects.a 30KB
objects.a 22KB
objects.a 7KB
libopencv_perf_imgcodecs_pch_dephelp.a 2KB
libopencv_perf_stitching_pch_dephelp.a 2KB
共 9833 条
- 1
- 2
- 3
- 4
- 5
- 6
- 99
资源评论
- zhbbc1232020-12-04mingw版本的,已经使用,挺好的
- fensnote2019-08-26可以用,谢谢分享!
- 三公子Tjq2018-11-22是opencv3.4.1源代码和动态库下载,我还以为是用qt5.9编译opencv的教程呢,下载错了。蛋疼
- Mr_smake2019-05-10编译的库是好用的,直接配置路径和工程就行了,不用自己再生成库了。
- gaoshanyue2019-11-30试过了,好用
夜空最靓的仔
- 粉丝: 2
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功