派生自 Algorithm/baseDetector

Scheaven
2021-01-29 56def8d41711125189536c87796af2d6702a21f9
update para
1个文件已删除
3个文件已修改
193 ■■■■■ 已修改文件
CMakeLists.txt 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h_interface.cpp 补丁 | 查看 | 原始文档 | blame | 历史
lib/utils/geometry_util.cpp 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lib/utils/stack_util.hpp 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CMakeLists.txt
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.5)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}   -fvisibility=hidden -DEIGEN_MAX_ALIGN_BYTES=32 -DEIGEN_DONT_VECTORIZE -fPIC -march=native -DGPU -DCUDNN -DOPENCV -g -W -O0 -pthread -DS_DEBUG")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}   -fvisibility=hidden -DEIGEN_MAX_ALIGN_BYTES=32 -DEIGEN_DONT_VECTORIZE -fPIC -march=native -DGPU -DCUDNN -DOPENCV -g -W -O0 -pthread -DS_DEBUG -DS_SERVER")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}   -fvisibility=hidden -DEIGEN_MAX_ALIGN_BYTES=32 -DEIGEN_DONT_VECTORIZE -fPIC -march=native -DGPU -DCUDNN -DOPENCV -g -W -O0 -pthread -DS_DEBUG")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}   -fvisibility=hidden -DEIGEN_MAX_ALIGN_BYTES=32 -DEIGEN_DONT_VECTORIZE -fPIC -march=native -DGPU -DCUDNN -DOPENCV -g -W -O0 -pthread -DS_SERVER")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}   -fvisibility=hidden -DEIGEN_MAX_ALIGN_BYTES=32 -DEIGEN_DONT_VECTORIZE -fPIC -lm -march=native -DGPU -DCUDNN -DOPENCV -g -W -O0 -pthread -Wl,--no-as-needed")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  -fvisibility=hidden -DGPU -DCUDNN -DOPENCV -g  -lm -fPIC -W -O0 -Wl,--no-as-needed")  # 编译C脚本时调用GPU环境信息
#set(CMAKE_C_FLAGS "-fvisibility=hidden")
@@ -122,8 +122,8 @@
#添加要编译的可执行文件
#cuda_add_executable(${PROJECT_NAME}
cuda_add_executable(${PROJECT_NAME} SDK_main.cpp ${sources} ${CURRENT_HEADERS})
#cuda_add_library(${PROJECT_NAME} SHARED ${sources} ${CURRENT_HEADERS})
#cuda_add_executable(${PROJECT_NAME} SDK_main.cpp ${sources} ${CURRENT_HEADERS})
cuda_add_library(${PROJECT_NAME} SHARED ${sources} ${CURRENT_HEADERS})
#设置 target 需要链接的库
target_link_libraries(${PROJECT_NAME} ${LIBS})
h_interface.cpp
lib/utils/geometry_util.cpp
@@ -22,57 +22,6 @@
    return len;
}
/*
如果从点P作水平向左的射线的话,假设P在多边形内部,那么这条射线与多边形的交点必为奇数,如果P在多边形外部,则交点个数必为偶数(0也在内)。所以,我们可以顺序(顺时针或逆时针)考虑多边形的每条边,求出交点的总个数。还有一些特殊情况要考虑。假如考虑边(P1,P2),
1) 如果射线正好穿过P1或者P2,那么这个交点会被算作2次,处理办法是如果P的从坐标与P1,P2中较小的纵坐标相同,则直接忽略这种情况
2) 如果射线水平,则射线要么与其无交点,要么有无数个,这种情况也直接忽略。
3) 如果射线竖直,而P的横坐标小于P1,P2的横坐标,则必然相交。
4) 再判断相交之前,先判断P是否在边(P1,P2)的上面,如果在,则直接得出结论:P再多边形内部。
 * */
//bool Pt_in_Polygon(SPoint point, RegInfo* polygon)
//{
//    int nCross = 0;
//    for (int i = 0; i < polygon->count; ++i)
//    {
//        SPoint p1 = polygon[i];
//        SPoint p2 = polygon[(i+1)%polygon->count];
//
//        if ( p1.y == p2.y )
//            continue;
//        if ( p.y < min(p1.y, p2.y) )
//            continue;
//        if ( p.y >= max(p1.y, p2.y) )
//            continue;
//
//        // 求交点的x坐标(由直线两点式方程转化而来)
//        float x = (float)(p.y - p1.y) * (float)(p2.x - p1.x) / (float)(p2.y - p1.y) + p1.x;
//
//        // 只统计p1p2与p向右射线的交点
//        if ( x > p.x )
//        {
//            nCross++;
//        }
//
//    }
//
//    // 交点为偶数,点在多边形之外
//    // 交点为奇数,点在多边形之内
//    if ((nCross % 2) == 1)
//    {
//        return true; //在内部
//    }
//    else
//    {
//        return false; //在外部
//    }
//}
/*
 * 多边形部分,判断多边形重叠率的计算
 */
float computeArea(const SPoint * pt,int n ) {
    float area0 = 0.f;
    for (int i = 0 ; i < n ; i++ )
lib/utils/stack_util.hpp
File was deleted