使用matlab对行人视频进行检测的代码的分析

2023-11-11

function F = hogcalculator(img,cellpw,cellph, nblockw, nblockh,nthet,overlap, isglobalinterpolate, issigned, normmethod)
% HOGCALCULATOR calculate R-HOG feature vector of an input image using the
% procedure presented in Dalal and Triggs's paper in CVPR 2005.Note that at the end of this code, there are some demonstration code,please remove in your work.
% F = hogcalculator(img, cellpw, cellph, nblockw, nblockh,nthet, overlap, isglobalinterpolate, issigned, normmethod)
%IMG:
%IMG is the input image.
%CELLPW, CELLPH:
%CELLPW and CELLPH are cell's pixel width and height respectively.
%NBLOCKW, NBLCOKH:
%NBLOCKW and NBLCOKH are block size counted by cells number in x and y directions respectively.
%NTHET, ISSIGNED:
%NTHET is the number of the bins of the histogram of oriented gradient. The histogram of oriented gradient ranges from 0 to pi in
%'unsigned' condition while to 2*pi in 'signed' condition, which can be specified through setting the value of the variable ISSIGNED by the string 'unsigned' or 'signed'.
%OVERLAP:
%OVERLAP is the overlap proportion of two neighboring block(两个相邻块的重叠比例).
%ISGLOBALINTERPOLATE:
%ISGLOBALINTERPOLATE specifies whether the trilinear interpolation(三线性插入)is done in a single global 3d histogram of the whole detecting window by the 
%string 'globalinterpolate' or in each local 3d histogram corresponding to respective blocks by the string 'localinterpolate' which is in strict accordance with the 
%procedure proposed in Dalal's paper. Interpolating in the whole detecting window requires the block's sliding step(滑动步长)to be an integral multiple of cell's width and height 
%because the histogram is fixing before interpolate. In fact here the so called 'globalinterpolation' is a notation(符号,注释)given by myself. at first the spatial interpolation is done 
%without any relevant to block's slide position, but when I was doing calculation %while OVERLAP is 0.75, something occurred 
%NORMMETHOD:
%NORMMETHOD is the block histogram normalized method which can be set as one of the following strings:
%'none', which means non-normalization;
%'l1', which means L1-norm normalization;
%'l2', which means L2-norm normalization;
%'l1sqrt', which means L1-sqrt-norm normalization;
%'l2hys', which means L2-hys-norm normalization.
% F:
%F is a row vector storing the final histogram of all of the blocks one by one in a top-left to bottom-right image scan manner, the cells histogram are stored in the
%same manner in each block's section of F.Note that CELLPW*NBLOCKW and CELLPH*NBLOCKH should be equal to IMG's width and height respectively.
%Here is a demonstration, which all of parameters are set as the best value mentioned in Dalal's paper when the window detected is 128*64 size(128 rows, 64 columns):
%F = hogcalculator(window, 8, 8, 2, 2, 9, 0.5,'localinterpolate', 'unsigned', 'l2hys');
%Also the function can be called like:F = hogcalculator(window);
%the other parameters are all set by using the above-mentioned "dalal's
%best value" as default.
if nargin < 2
%set default parameters value.
cellpw = 8;
cellph = 8; 
nblockw = 2;
nblockh = 2;
nthet = 9; 
overlap = 0.5;
isglobalinterpolate = 'globalinterpolate';
issigned = 'unsigned';
normmethod = 'l2hys';
else 
if nargin < 10
error('Input parameters are not enough.');
end
end
% check parameters's validity(有效性;正确性;正确).
img=imread('G:\生活\有趣的图片\斗地主.jpg');
[M, N, K] = size(img);
if mod(M,cellph*nblockh) ~= 0 
error('IMG''s height should be an integral multiple of CELLPH*NBLOCKH.');
end
if mod(N,cellpw*nblockw) ~= 0
error('IMG''s width should be an integral multiple of CELLPW*NBLOCKW.');
end
if mod((1-overlap)*cellpw*nblockw, cellpw) ~= 0 ||mod((1-overlap)*cellph*nblockh, cellph) ~= 0
str1 = 'Incorrect OVERLAP or ISGLOBALINTERPOLATE parameter';
str2 = ', slide step should be an intergral multiple of cell size';
error([str1, str2]);
end
% set the standard deviation(偏差;背离;误差)of gaussian spatial weight window.
delta = cellpw*nblockw * 0.5;
% calculate gradient scale matrix
hx = [-1,0,1];
hy = -hx';
gradscalx = imfilter(double(img),hx);
gradscaly = imfilter(double(img),hy);
if K > 1
gradscalx = max(max(gradscalx(:,:,1),gradscalx(:,:,2)), gradscalx(:,:,3));
gradscaly = max(max(gradscaly(:,:,1),gradscaly(:,:,2)), gradscaly(:,:,3));
end
gradscal = sqrt(double(gradscalx.*gradscalx + gradscaly.*gradscaly));
% calculate gradient orientation matrix.
% plus small number for avoiding dividing zero.
gradscalxplus = gradscalx+ones(size(gradscalx))*0.0001;
gradorient = zeros(M,N);
% unsigned situation: orientation region is 0 to pi.
if strcmp(issigned, 'unsigned') == 1 
gradorient =atan(gradscaly./gradscalxplus) + pi/2;
or = 1;
else
% signed situation: orientation region is 0 to 2*pi.
if strcmp(issigned, 'signed') == 1
idx = find(gradscalx >= 0 & gradscaly >= 0);
gradorient(idx) = atan(gradscaly(idx)./gradscalxplus(idx));
idx = find(gradscalx < 0);
gradorient(idx) = atan(gradscaly(idx)./gradscalxplus(idx)) + pi;
idx = find(gradscalx >= 0 & gradscaly < 0); 
gradorient(idx) = atan(gradscaly(idx)./gradscalxplus(idx)) + 2*pi;
or = 2;
else 
error('Incorrect ISSIGNED parameter.');
end
end
% calculate block slide step.
xbstride = cellpw*nblockw*(1-overlap);
ybstride = cellph*nblockh*(1-overlap);
xbstridend = N - cellpw*nblockw + 1;
ybstridend = M - cellph*nblockh + 1;
% calculate the total blocks number in the window detected, which is ntotalbh*ntotalbw.
ntotalbh = ((M-cellph*nblockh)/ybstride)+1;
ntotalbw = ((N-cellpw*nblockw)/xbstride)+1;
% generate the matrix hist3dbig for storing the 3-dimensions histogram. the matrix covers the whole image in the 'globalinterpolate' condition or
% covers the local block in the 'localinterpolate' condition. The matrix is bigger than the area where it covers by adding additional elements
% (corresponding to the cells) to the surround for calculation convenience.
if strcmp(isglobalinterpolate, 'globalinterpolate') == 1 
ncellx = N / cellpw;
ncelly = M / cellph;
hist3dbig = zeros(ncelly+2, ncellx+2, nthet+2);
F = zeros(1, (M/cellph-1)*(N/cellpw-1)*nblockw*nblockh*nthet);
glbalinter = 1;
else
if strcmp(isglobalinterpolate, 'localinterpolate') == 1 
hist3dbig = zeros(nblockh+2, nblockw+2, nthet+2); 
F = zeros(1, ntotalbh*ntotalbw*nblockw*nblockh*nthet);
glbalinter = 0;
else
error('Incorrect ISGLOBALINTERPOLATE parameter.')
end
end
% generate the matrix for storing histogram of one block;
sF = zeros(1, nblockw*nblockh*nthet);
% generate gaussian spatial weight.
[gaussx, gaussy] = meshgrid(0:(cellpw*nblockw-1), 0:(cellph*nblockh-1));
weight = exp(-((gaussx-(cellpw*nblockw-1)/2).*(gaussx-(cellpw*nblockw-1)/2)+(gaussy-(cellph*nblockh-1)/2).*(gaussy-(cellph*nblockh-1)/2))/(delta*delta));
% vote for histogram. there are two situations according to the interpolate condition('global' interpolate or local interpolate). The hist3d which is
% generated from the 'bigger' matrix hist3dbig is the final histogram.
if glbalinter == 1
xbstep = nblockw*cellpw; 
ybstep = nblockh*cellph;
else
xbstep = xbstride;
ybstep = ybstride;
end
% block slide loop,其中btly与btlx分别表示block所在位置左上角点处的坐标,(bj,bi)就是来存储cell左上角的坐标,(j,i)就表示cell中的像素在整个检测窗(64*128的图像)中的坐标
for btly = 1:ybstep:ybstridend
for btlx = 1:xbstep:xbstridend
for bi = 1:(cellph*nblockh)
for bj = 1:(cellpw*nblockw)
i = btly + bi - 1;
j = btlx + bj - 1;
gaussweight = weight(bi,bj);
gs = gradscal(i,j);
go = gradorient(i,j);
%程序里有个jorbj与iorbi,这在Localinterpolate的情况下(也就是标准的原始HOG情况),就是bj与bi.
if glbalinter == 1
jorbj = j;
iorbi = i;
else
jorbj = bj; 
iorbi = bi;
end
% calculate bin index of hist3dbig,hist3dbig这是一个三维的矩阵,用来存储三维直方图,计算八个统计区间中心点的坐标
binx1 = floor((jorbj-1+cellpw/2)/cellpw) + 1;
biny1 = floor((iorbi-1+cellph/2)/cellph) + 1; 
binz1 = floor((go+(or*pi/nthet)/2)/(or*pi/nthet)) + 1;
if gs == 0 
continue;
end 
binx2 = binx1 + 1;
biny2 = biny1 + 1;
binz2 = binz1 + 1;
x1 = (binx1-1.5)*cellpw + 0.5;
y1 = (biny1-1.5)*cellph + 0.5;
z1 = (binz1-1.5)*(or*pi/nthet);
% trilinear interpolation.
%binx1,biny1,binz1在这里就是那个八个bin块之中离当前要统计的像素点在直方图中对应的位置最接近的bin块的下标;binx2,biny2,binz2对应就是最远的bin块的下标了
%x1,y1,z1就是bin块(binx1,biny1,binz1)中心点对应的实际像素所在的位置(x1,y1)与梯度方向的角度(z1).
hist3dbig(biny1,binx1,binz1) =hist3dbig(biny1,binx1,binz1) + gs*gaussweight* (1-(jorbj-x1)/cellpw)*(1-(iorbi-y1)/cellph)*(1-(go-z1)/(or*pi/nthet));
hist3dbig(biny1,binx1,binz2) =hist3dbig(biny1,binx1,binz2) + gs*gaussweight* (1-(jorbj-x1)/cellpw)*(1-(iorbi-y1)/cellph)*((go-z1)/(or*pi/nthet)); 
hist3dbig(biny2,binx1,binz1) =hist3dbig(biny2,binx1,binz1) + gs*gaussweight* (1-(jorbj-x1)/cellpw)*((iorbi-y1)/cellph)*(1-(go-z1)/(or*pi/nthet));
hist3dbig(biny2,binx1,binz2) =hist3dbig(biny2,binx1,binz2) + gs*gaussweight* (1-(jorbj-x1)/cellpw)*((iorbi-y1)/cellph)*((go-z1)/(or*pi/nthet)); 
hist3dbig(biny1,binx2,binz1) =hist3dbig(biny1,binx2,binz1) + gs*gaussweight* ((jorbj-x1)/cellpw)*(1-(iorbi-y1)/cellph)*(1-(go-z1)/(or*pi/nthet));
hist3dbig(biny1,binx2,binz2) =hist3dbig(biny1,binx2,binz2) + gs*gaussweight* ((jorbj-x1)/cellpw)*(1-(iorbi-y1)/cellph)*((go-z1)/(or*pi/nthet));
hist3dbig(biny2,binx2,binz1) =hist3dbig(biny2,binx2,binz1) + gs*gaussweight* ((jorbj-x1)/cellpw)*((iorbi-y1)/cellph)*(1-(go-z1)/(or*pi/nthet));
hist3dbig(biny2,binx2,binz2) =hist3dbig(biny2,binx2,binz2) + gs*gaussweight* ((jorbj-x1)/cellpw)*((iorbi-y1)/cellph)*((go-z1)/(or*pi/nthet));
end
end
% In the local interpolate condition. F is generated in this block slide loop. hist3dbig should be cleared in each loop.
if glbalinter == 0
if or == 2
hist3dbig(:,:,2) = hist3dbig(:,:,2)+ hist3dbig(:,:,nthet+2);
hist3dbig(:,:,(nthet+1)) =hist3dbig(:,:,(nthet+1)) + hist3dbig(:,:,1); 
end
hist3d = hist3dbig(2:(nblockh+1), 2:(nblockw+1), 2:(nthet+1));
for ibin = 1:nblockh 
for jbin = 1:nblockw 
idsF = nthet*((ibin-1)*nblockw+jbin-1)+1; 
idsF = idsF:(idsF+nthet-1);
sF(idsF) = hist3d(ibin,jbin,:);
end 
end 
iblock = ((btly-1)/ybstride)*ntotalbw +((btlx-1)/xbstride) + 1;
idF = (iblock-1)*nblockw*nblockh*nthet+1; 
idF = idF:(idF+nblockw*nblockh*nthet-1);
F(idF) = sF;
hist3dbig(:,:,:) = 0;
end
end
end
% In the global interpolate condition. F is generated here outside the block slide loop 
if glbalinter == 1
ncellx = N / cellpw; 
ncelly = M / cellph;
if or == 2 
hist3dbig(:,:,2) = hist3dbig(:,:,2) + hist3dbig(:,:,nthet+2);
hist3dbig(:,:,(nthet+1)) = hist3dbig(:,:,(nthet+1)) + hist3dbig(:,:,1);
end
hist3d = hist3dbig(2:(ncelly+1), 2:(ncellx+1), 2:(nthet+1));
iblock = 1;
for btly = 1:ybstride:ybstridend
for btlx = 1:xbstride:xbstridend
binidx = floor((btlx-1)/cellpw)+1;
binidy = floor((btly-1)/cellph)+1;
idF = (iblock-1)*nblockw*nblockh*nthet+1; 
idF = idF:(idF+nblockw*nblockh*nthet-1);
for ibin = 1:nblockh 
for jbin = 1:nblockw 
idsF = nthet*((ibin-1)*nblockw+jbin-1)+1;
idsF = idsF:(idsF+nthet-1);
sF(idsF) = hist3d(binidy+ibin-1, binidx+jbin-1, :);
end
end
F(idF) = sF;
iblock = iblock + 1;
end
end
end
% adjust the negative value caused by accuracy of floating-point
% operations.these value's scale is very small, usually at E-03 magnitude
% while others will be E+02 or E+03 before normalization.F(F<0) = 0;
% block normalization.
e = 0.001;
l2hysthreshold = 0.2;
fslidestep = nblockw*nblockh*nthet;
switch normmethod
case 'none'
case 'l1'
for fi = 1:fslidestep:size(F,2)
div = sum(F(fi:(fi+fslidestep-1)));
F(fi:(fi+fslidestep-1)) = F(fi:(fi+fslidestep-1))/(div+e);
end
case 'l1sqrt'
for fi = 1:fslidestep:size(F,2) 
div = sum(F(fi:(fi+fslidestep-1))); 
F(fi:(fi+fslidestep-1)) = sqrt(F(fi:(fi+fslidestep-1))/(div+e));
end
case 'l2'
for fi = 1:fslidestep:size(F,2)
sF = F(fi:(fi+fslidestep-1)).*F(fi:(fi+fslidestep-1));
div = sqrt(sum(sF)+e*e);
F(fi:(fi+fslidestep-1)) = F(fi:(fi+fslidestep-1))/div;
end 
case 'l2hys'
for fi = 1:fslidestep:size(F,2)
sF = F(fi:(fi+fslidestep-1)).*F(fi:(fi+fslidestep-1)); 
div = sqrt(sum(sF)+e*e);
sF = F(fi:(fi+fslidestep-1))/div;
sF(sF>l2hysthreshold) = l2hysthreshold;
div = sqrt(sum(sF.*sF)+e*e);
F(fi:(fi+fslidestep-1)) = sF/div;
end
    otherwise 
error('Incorrect NORMMETHOD parameter.');
end
% the following code, which can be removed because of having no
% contributions to HOG feature calculation, are just for result
% demonstration when the trilinear interpolation is 'global' for this
% condition is easier to give a simple and intuitive illustration. so in
% 'local' condition ,it will produce error.
figure;
hold on;
axis equal;
xlim([0, N]);
ylim([0, M]);
for u = 1:(M/cellph) 
for v = 1:(N/cellpw)
cx = (v-1)*cellpw + cellpw/2 + 0.5;
cy = (u-1)*cellph + cellph/2 + 0.5;
hist3d(u,v,:)=0.9*min(cellpw,cellph)*hist3d(u,v,:)/max(hist3d(u,v,:));
for t = 1:nthet
s = hist3d(u,v,t);
thet = (t-1)*pi/nthet + pi*0.5/nthet;
x1 = cx - s*0.5*cos(thet);
x2 = cx + s*0.5*cos(thet);
y1 = cy - s*0.5*sin(thet);
y2 = cy + s*0.5*sin(thet);
plot([x1,x2],[M-y1+1,M-y2+1]);
end
end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用matlab对行人视频进行检测的代码的分析 的相关文章

  • Python爬虫该怎么学习?学习步骤是什么?

    学Python 想必大家都是从爬虫开始的吧 python爬虫即 网络爬虫 网络爬虫是一种程序 主要用于搜索引擎 它将一个网站的所有内容与链接进行阅读 并建立相关的全文索引到数据库中 然后跳到另一个网站 搜索引擎 SearchEngine 是
  • 硬件基础之电感篇

    一 技术理论 1 电感定义 将漆包线 纱包线或塑皮线等在绝缘骨架或磁心 铁心上绕制而成的器件 当线圈通过电流后 在线圈中形成磁场感应 感应磁场又会产生感应电流来阻碍线圈中电流的变化 这种电流与线圈的相互作用关系称为电的感抗 也就是电感 相应
  • 前端面试高频精讲(二)Vue篇

    watch 和 computed 的区别 watch 是监听 支持异步操作 内部有 immediate deep handle三个属性 当一条数据影响多条数据时 使用 watch 常见的就是搜索 computed 是计算属性 能够缓存 内部
  • SpringBoot自动配置-切换内置web服务器

    切换内置web服务器 springboot的web环境中默认使用tomcat作为内置服务器 其实springboot提供了4中内置服务器供我们使用 我们可以方便切换
  • 通讯软件006——分分钟学会Citect通讯配置

    本文介绍如何利用Citect实现上位机与设备之间的通讯 通讯资源请登录网信智汇 以下是典型的Citect通讯原理图 IOServer IO服务器 对应Citect节点 Board 在IO服务器上创建虚拟的通讯板 1个IO服务器可以创建多个通
  • C#多线程(四)——Timer的使用

    1 Timer类的作用是设置一个定时器 定时执行用户指定的
  • typora主题配置:公众号一键排版

    typora是一个非常易用且免费的markdown编辑器 是我最常用的文档编辑器 它支持实时渲染 不用打开两个窗口 源码窗口和预览窗口 真正实现了沉浸式写作 所谓所见即所得 它的界面简洁 操作简单 非常容易上手 这里就不介绍了 本文主要介绍
  • (三)2.自动控制原理 Time domain analysis and correct 二阶系统动能特性

    上面讲完了最简单的一阶系统动态性能指标 下面说说二阶的 1 二阶系统的标准形式 二阶系统的典型结构 由这个图 我们可以轻松算出他的开环传递函数 增益 闭环传递函数和增益 这里不手打了 在写二阶传递函数时 我们一般把它写成首一形 传递函数依然
  • WEB-5-TCP / IP协议

    TCP IP协议 一 应用层 二 传输层 1 UDP 协议 1 协议格式 2 特点 2 TCP 协议 1 协议格式 3 TCP 中的核心机制 1 确认应答机制 2 超时重传机制 3 连接管理机制 4 滑动窗口 5 流量控制 6 拥塞控制 7
  • Source Insight 4.0安装教程(PS:附安装包及卸载重新安装等注意事项)

    目录 一 Source Insight 4 0安装包 二 删除配置文件 初次安装忽略此步骤 1 清除注册表信息 2 删除全局配置信息 三 安装步骤 1 解压 2 安装 3 替换 4 破解 5 安装提示unable to open or cr
  • windows10 中英文切换状态无法显示解决办法

    菜鸟的电脑很早之前就有这个中英文状态无法显示的毛病 菜鸟一只想解决 但是没有去弄 前几天 菜鸟发现下载一个其他输入法 电脑自带的输入法的中英文切换就会自己出来 但是好景不长 这是治标不治本 今天菜鸟电脑又显示不出来中英文切换了 于是上网搜索
  • STM32程序死在HardFault_Handler的分析和解决

    最近开发STM32F070F6P6项目 发现程序老是运行不了 仿真发现 程序总是死在HardFault Handler 程序总是死在第二个初始化函数里面 上网查询资料发现 STM32出现HardFault Handler故障的原因主要有两个
  • 中国的互联网技术有多牛逼?

    中国的电商 网约车 共享单车 外卖等都居于全球第一 物流配送效率全球第一 表面上看起来这些都是互联网技术 在全球居于领先地位 然而古怪的是至今为止中国互联网唯一走向世界的只有Tik Tok 在中国以外的市场 互联网还是由谷歌 亚马逊等美国企
  • Web自动化测试流程:从入门到精通,帮你成为测试专家!

    Web应用程序在今天的软件开发中占据着越来越重要的地位 保证Web应用程序的质量和稳定性是非常必要的 而自动化测试是一种有效的方法 本文将介绍Web自动化测试流程 并提供代码示例 步骤一 选取测试工具 选择适合自己团队的自动化测试工具是很重
  • 如何生成1亿个手机号码?Python来教你。真实的面试题哦。

    案例解析 最近在网上看到一个python的面试题目 如何用Python生成1亿个手机号码 我第一眼看到的时候心想 这个还不简单 直接 random randint 1 999999999999 就完事了 但是马上就发现了这其中的错误 这个是
  • sql注入系列之Sqli-labs(less-8)

    判断注入点 http 192 168 81 210 sqli Less 8 id 1 id等于1的时候正常id等于1 的时候页面有改变 因此可以判断可能存在注入 并且是布尔型盲注 判断注入类型 输入1 and 1 1和1 and 1 2发现
  • MySQL字符串截取:左截取、右截取、按关键字截取

    1 从左开始截取字符串 语法 SELECT LEFT str len str 被截取的字符串 len 截取长度 示例 SELECT LEFT TF 8220210412003 1 10 结果为 TF 8220210 2 从右开始截取字符串
  • python使用matplotlib创建三维图时隐藏坐标轴、网格、背景的方法

    使用下面的代码创建一条空间直线 import numpy as np import matplotlib pyplot as plt 创建一个空白画布 fig plt figure 创建一个子图 ax fig add subplot pro
  • [-] \Navicat-Cracker NavicatCrackerDlg.cpp:463 ->Please Patch first Or Specified RSA private key

    报错信息 Navicat Cracker NavicatCrackerDlg cpp 463 gt hinese Can t Generate Activation Code Keygen HINT Please Patch first O
  • 【Mo 人工智能技术博客】文本挖掘之LDA主题模型

    文本挖掘之LDA主题模型 作者 郑培 引言 主题模型是文本挖掘的重要工具 近年来在工业界和学术界都获得了非常多的关注 在文本挖掘领域 大量的数据都是非结构化的 很难从信息中直接获取相关和期望的信息 一种文本挖掘的方法 主题模型 Topic

随机推荐

  • ReLU,Sigmoid,Tanh,softmax,pipeline【基础知识总结】

    一 ReLU Rectified Linear Activation Function 1 优点 2 缺点 3 补充 1 Leaky ReLUs 2 参数化修正线性单元 PReLU 3 随机纠正线性单元 RReLU 二 Sigmoid 1
  • echarts自适应父级盒子宽度

    这里写自定义目录标题 效果 手动改变窗口大小 echarts实现自动适应父级盒子宽度 1 在vue中安装一个插件element resize detector 这是一个元素调整大小检测器 npm install element resize
  • 微观的C/C++编译执行过程

    前言 相信能看到这篇文章的同学 是对C语言很热爱的人 最开始学习C语言的时候 我们大多数人都是用集成开发环境 VS VC devc 等 当我们把C语言源代码写好了之后 在集成开发工具中这里点一下 哪里点一下 代码就跑起来了 这种快乐的感觉的
  • Linux下node-sass安装失败的解决方法与简单使用

    记录一下安装node sass的过程 关于CSS是不是一门编程语言 这里不讨论 但是它没有变量 语句 函数 反正我觉得他不是编程语言 于是程序员们发明了CSS预处理器 css preprocessor 它是一种专门的编程语言 可以使用你会的
  • java经典算法题

    目录 1 Java多线程 写一下两个线程交替打印 0 100 的奇偶数 2 线程安全的单例模式 3 用两个栈实现队列 4 实现单链表反转操作 5 Java实现二分查找 6 冒泡排序 7 快速排序 快速排序的基本思想 8 Java单链表实现快
  • 类的设计方法

    1 类名首字母应该大写 字段 方法以及对象 句柄 的首字母应小写 对于所有标识符 其中包含的所有单词都应紧靠在一起 而且大写中间单词的首字母 例如 ThisIsAClassNamethisIsMethodOrFieldName若在定义中出现
  • vue中页面分页引导

    一 使用driver js做页面分页引导 default 先来看看默认引导的效果 可以根据自己的需求做页面样式上的修改 change 修改修改如下 移动端web端都可以用 接下来说一下具体的用法 1 npm 安装 npm install d
  • EsayExcel使用

    EsayExcel简单入门 1 maven依赖
  • 华为OD真题学习-查找单入口空闲区域 100

    回溯法 基本做法是搜索 通过x 1 x 1横向遍历 y 1 y 1纵向遍历 获取满足连通的坐标 原始参考链接 华为OD机试真题 python 查找单入口空闲区域 2022 Q4 100分 无痕de泪的博客 CSDN博客 查找单入口空闲区域
  • static变量可以被修改吗?

    静态变量并不是说其就不能改变值 不能改变值的量叫常量 其拥有的值是可变的 而且它会保持最新的值 说其静态 是因为它不会随着函数的调用和退出而发生变化 即上次调用函数的时候 如果我们给静态变量赋予某个值的话 下次函数调用时 这个值保持不变 静
  • Java Graphics2D绘制背景透明的图形过程

    package com jhy time import java awt AlphaComposite import java awt BasicStroke import java awt Color import java awt Gr
  • 关于COLA架构的讨论

    理解 分层 概念网上可以搜到很多 大体分为 adapter client app infra domain 这五层 图例这里有 就不贴了 adapter和app相当于spring里的controller service domain是领域模
  • 推荐引擎分为哪几类,个性化推荐引擎的介绍

    在信息时代的今天 大数据为用户获取方方面面的信息提高了效率 更可以智能的帮助用户从海量内容中快速找到想要阅读的信息 或者从海量商品中快速找到想要购买的商品 推荐引擎的发展让选择不明确的用户更加了解她们的需求和喜好 下面以内容产品和电商产品为
  • apk包加固后重新签名

    使用jarsigner对未签名的加固包进行签名 建议您使用之前对APP签名时使用的keystore对加固包进行签名 jarsigner digestalg SHA1 sigalg MD5withRSA verbose keystore yo
  • 动态代码块、静态代码块、静态方法、静态变量(属性 )、构造方法

    1 动态代码块 class Super int a 10 public void m1 System out println m1 动态代码块 System out println 动态代码块开始执行 System out println
  • imblearn 安装

    imblearn 安装 官网安装教程 踩坑经过 1 有些库版本达不到要求 imblearn需要依赖某些Python模块 下面是最新版0 7 0的依赖要求 python gt 3 6 numpy gt 1 13 3 scipy gt 0 19
  • smbms-AJAX验证旧密码实现

    优化密码修改使用ajax 主要是与前端接轨 1 阿里巴巴fastjson maven导入 导入包
  • matlab:txt数据文件的读出与读取

    输出数据 fid fopen hello txt w 需要改文件名称的地方 fprintf fid 10 3f n data data 需要导出的变量名称 10位有效数字 保留3位小数 包含小数点 f为双精度 g为科学计数法 fclose
  • 全志V3S开启启动

    一 TurnOffMute sh 创建自己需要的脚本 我这里创建关闭静音的脚本 vi TurnOffMute sh 然后往其中添加需要执行的命令 然后赋予可执行的权限 chmod 777 TurnOffMute sh 二 etc rc lo
  • 使用matlab对行人视频进行检测的代码的分析

    function F hogcalculator img cellpw cellph nblockw nblockh nthet overlap isglobalinterpolate issigned normmethod HOGCALC