资源简介
这个是BING算法纯检测部分的实现,训练好的模型已经在里面了。只需要修改你自己图片的路径就可以使用。 工程上使用大概20FPS。
代码片段和文件信息
#include “stdafx.h“
#include “FilterBING.h“
//#include “CmShow.h“
void FilterBING::update(CMat &w1f){
CV_Assert(w1f.cols * w1f.rows == D && w1f.type() == CV_32F && w1f.isContinuous());
float b[D] residuals[D];
memcpy(residuals w1f.data sizeof(float)*D);
for (int i = 0; i < NUM_COMP; i++){
float avg = 0;
for (int j = 0; j < D; j++){
b[j] = residuals[j] >= 0.0f ? 1.0f : -1.0f;
avg += residuals[j] * b[j];
}
avg /= D;
_coeffs1[i] = avg _coeffs2[i] = avg*2 _coeffs4[i] = avg*4 _coeffs8[i] = avg*8;
for (int j = 0; j < D; j++)
residuals[j] -= avg*b[j];
UINT64 tig = 0;
for (int j = 0; j < D; j++)
tig = (tig << 1) | (b[j] > 0 ? 1 : 0);
_bTIGs[i] = tig;
}
}
void FilterBING::reconstruct(Mat &w1f){
w1f = Mat::zeros(8 8 CV_32F);
float *weight = (float*)w1f.data;
for (int i = 0; i < NUM_COMP; i++){
UINT64 tig = _bTIGs[i];
for (int j = 0; j < D; j++)
weight[j] += _coeffs1[i] * (((tig >> (63-j)) & 1) ? 1 : -1);
}
}
// For a W by H gradient magnitude map find a W-7 by H-7 CV_32F matching score map
// Please refer to my paper for definition of the variables used in this function
Mat FilterBING::matchTemplate(const Mat &mag1u){
const int H = mag1u.rows W = mag1u.cols;
const Size sz(W+1 H+1); // Expand original size to avoid dealing with boundary conditions
Mat_ Tig1 = Mat_::zeros(sz) Tig2 = Mat_::zeros(sz);
Mat_ Tig4 = Mat_::zeros(sz) Tig8 = Mat_::zeros(sz);
Mat_ Row1 = Mat_::zeros(sz) Row2 = Mat_::zeros(sz);
Mat_ Row4 = Mat_::zeros(sz) Row8 = Mat_::zeros(sz);
Mat_ scores(sz);
for(int y = 1; y <= H; y++){
const byte* G = mag1u.ptr(y-1);
INT64* T1 = Tig1.ptr(y); // Binary TIG of current row
INT64* T2 = Tig2.ptr(y);
INT64* T4 = Tig4.ptr(y);
INT64* T8 = Tig8.ptr(y);
INT64* Tu1 = Tig1.ptr(y-1); // Binary TIG of upper row
INT64* Tu2 = Tig2.ptr(y-1);
INT64* Tu4 = Tig4.ptr(y-1);
INT64* Tu8 = Tig8.ptr(y-1);
byte* R1 = Row1.ptr(y);
byte* R2 = Row2.ptr(y);
byte* R4 = Row4.ptr(y);
byte* R8 = Row8.ptr(y);
float *s = scores.ptr(y);
for (int x = 1; x <= W; x++) {
byte g = G[x-1];
R1[x] = (R1[x-1] << 1) | ((g >> 4) & 1);
R2[x] = (R2[x-1] << 1) | ((g >> 5) & 1);
R4[x] = (R4[x-1] << 1) | ((g >> 6) & 1);
R8[x] = (R8[x-1] << 1) | ((g >> 7) & 1);
T1[x] = (Tu1[x] << 8) | R1[x];
T2[x] = (Tu2[x] << 8) | R2[x];
T4[x] = (Tu4[x] << 8) | R4[x];
T8[x] = (Tu8[x] << 8) | R8[x];
s[x] = dot(T1[x] T2[x] T4[x] T8[x]);
}
}
Mat matchCost1f;
scores(Rect(8 8 W-7 H-7)).copyTo(matchCost1f);
return matchCost1f;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6239 2015-12-16 16:30 Bingob
文件 2796 2015-12-19 11:14 Bingob
文件 1966 2014-04-11 18:28 Bingob
文件 998 2015-12-19 10:45 Bingob
文件 9430 2015-12-19 11:20 Bingob
文件 3287 2015-12-19 11:16 Bingob
文件 5643 2015-12-19 10:55 Bingob
文件 1793 2015-12-19 10:55 Bingob
文件 165 2015-11-18 15:10 Bingob
文件 129 2015-12-15 15:25 Bingob
文件 273 2015-12-15 15:25 Bingob
文件 241 2015-12-15 15:25 Bingob
文件 1028 2015-12-15 14:30 Bingob
文件 2733 2015-12-19 11:18 Bingob
文件 2561 2015-12-19 11:20 Bingob
文件 70713344 2015-12-19 11:28 Bingob
文件 952 2015-12-16 16:08 Bingob
..A..H. 70656 2015-12-19 11:28 Bingob
目录 0 2015-12-19 11:29 Bingob
目录 0 2015-12-19 11:29 Bingob
目录 0 2015-12-19 11:20 Bingob
目录 0 2015-12-19 11:29 Bingob
目录 0 2015-12-19 11:28 Bingob
----------- --------- ---------- ----- ----
70824234 23
相关资源
- Motion Deblurring Algorithms and Systems
- opencv 360度n张图像拼接,任意角度两
- GAN图像转换学术分享ppt
- 日本jaffe人脸表情数据库,包括216张人
- 图像数据集
- Image Processing Analysis and Machine Vision 4
- 用于视频的目标检测
- Brodatz纹理图像库以及人工合成纹理图
- 数字图像处理教材冈萨雷斯版PDF
- GPU自适应图像去噪完整程序
- 计算机真实感图形的算法基础-科学出
- 数字图像处理第三版图片BMP格式_CH1
- 图像放大waifu2x算法vs opencv实现
- 机器视觉(贾云得)(非常好了图像
- 小浣熊检测数据集
- 基于背景差法的运动目标检测
- 图像文本定位与识别——华中白翔团
- 数字图像处理第二版中文版冈萨雷斯
- 直方图均衡支持单通道16位和8位图像
- 基于偏微分方程的图像处理pdf及代码
- 特征提取与图像处理(中文第2版)
- 数字图像分析----南理工任明武老师
- 阿里天池FashionAI服装属性标签图像识
- image tool 图像自动标注工具 很好用!
- 图像处理中常用的标准测试图
- 贾志刚Opencv图像处理视频教程学习笔
- 基于双边滤波+retinex理论的图像中增强
- 图像处理第二版章毓晋版课件
- JPEG2000图像压缩基础、标准和实践——
- vs2010+opencv 图像处理,边缘检测,可设
评论
共有 条评论