资源简介
C++代码提取LBP特征,一共包括两种方式normal和circle,circle的效果好
代码片段和文件信息
#include
//#include
#include
#include
#include
#include
const static int lbpBins = 14;
static float lbpSquare[lbpBins + 1][lbpBins + 1];
using namespace cv;
using namespace std;
void elbp(Mat& src Mat &dst int radius int neighbors)
{
for(int n=0; n {
float x = static_cast(-radius * sin(2.0*CV_PI*n/static_cast(neighbors)));
float y = static_cast(radius * cos(2.0*CV_PI*n/static_cast(neighbors)));
int fx = static_cast(floor(x));
int fy = static_cast(floor(y));
int cx = static_cast(ceil(x));
int cy = static_cast(ceil(y));
float ty = y - fy;
float tx = x - fx;
float w1 = (1 - tx) * (1 - ty);
float w2 = tx * (1 - ty);
float w3 = (1 - tx) * ty;
float w4 = tx * ty;
for(int i=radius; i < src.rows-radius;i++)
{
for(int j=radius;j < src.cols-radius;j++)
{
float t = static_cast(w1*src.at(i+fyj+fx) + w2*src.at(i+fyj+cx) + w3*src.at(i+cyj+fx) + w4*src.at(i+cyj+cx));
dst.at(i-radiusj-radius) += ((t > src.at(ij)) || (std::abs(t-src.at(ij)) < std::numeric_limits::epsilon())) << n;
}
}
}
dst.create(1 lbpBins * lbpBins CV_32FC1);
for (int b = 0; b < lbpBins; b++)
{
for (int c = 0; c < lbpBins; c++)
{
相关资源
- DICOM医学图像格式转换的C++实现
- 个人银行账户管理程序C++
- 编写并调试一个模拟的进程调度程序
- C++编写的有界面的扫雷游戏
- 遗传算法.cpp
- C++编写的第三人称视角小球Ploygon风格
- C++ Primer Plus第6版源码.zip
- 小甲鱼98集全套数据结构视频
- c++制作黄金矿工
- C/C++:Windows编程—代码获取本地所有
- c++ 课程设计报告多个题目合集 完整
- C++课设高校人员信息管理系统
- c++实现哈夫曼树的编译码
- c++24期网盘链接
- C++ Primer 第六版 书上程序及课后习题
- 集合的并交差运算
- 免费的LeetCode-cpp题解(C++版本)大全
- Ubuntu下的扩展卡尔曼滤波EKF程序(C
- 2019华为软件精英挑战赛C++ 源码实现
- 基于遗传算法的带容量限制的P-media
- C++实现小游戏flappy bird
- C++builder实现计算器
- MFC 2010编写 C++ 求1元4次方程解,含1元
- c++版创建并输出二叉树完整代码
- c++练习题2015
- 最新传智播客C/C++第五期完整视频 R
- 影碟出租系统C++源代码
- C++&CLR 编写 Windows 窗体应用程序
- 用c语言写的8数码游戏
- ue4,c++平面最小封闭区域识别
评论
共有 条评论