const

OpenCV不同版本GaussianBlur结果不一致的坑

房东的猫 提交于 2020-04-02 19:25:15
OpenCV GaussianBlur 结果不一致 TL;DR OpenCV高版本的GaussianBlur,某些条件下会用 定点化 计算替代浮点计算,导致跨版本的结果不一致: void GaussianBlurFixedPoint(const Mat& src, /*const*/ Mat& dst, const uint16_t/*ufixedpoint16*/* fkx, int fkx_size, const uint16_t/*ufixedpoint16*/* fky, int fky_size, int borderType) { CV_INSTRUMENT_REGION(); CV_Assert(src.depth() == CV_8U && ((borderType & BORDER_ISOLATED) || !src.isSubmatrix())); fixedSmoothInvoker<uint8_t, ufixedpoint16> invoker( src.ptr<uint8_t>(), src.step1(), dst.ptr<uint8_t>(), dst.step1(), dst.cols, dst.rows, dst.channels(), (const ufixedpoint16*)fkx, fkx_size, (const

使用JQuery的动态罗盘时钟

时光怂恿深爱的人放手 提交于 2020-04-02 17:20:12
感谢参考原文- http://bjbsair.com/2020-04-01/tech-info/18510.html 惯例,先来效果图 Index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>动态时钟</title> <meta > <script src="js/jquery-1.10.2.js"></script> <script src="js/test.js"></script> <script src="js/common.js"></script> <script src="js/config.js"></script> </head> <style> * { margin: 0; padding: 0; } body { background-attachment: fixed; color: #F5F4F6; font-size: 12px; font-weight: bold; overflow: hidden; width: 1000px; height: 900px; font-family: "微软雅黑"; } audio { position: absolute;

使用JQuery的动态罗盘时钟

旧巷老猫 提交于 2020-04-02 17:09:09
感谢参考原文- http://bjbsair.com/2020-04-01/tech-info/18510.html 惯例,先来效果图 Index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>动态时钟</title> <meta > <script src="js/jquery-1.10.2.js"></script> <script src="js/test.js"></script> <script src="js/common.js"></script> <script src="js/config.js"></script> </head> <style> * { margin: 0; padding: 0; } body { background-attachment: fixed; color: #F5F4F6; font-size: 12px; font-weight: bold; overflow: hidden; width: 1000px; height: 900px; font-family: "微软雅黑"; } audio { position: absolute;

C++重载操作符学习

爷,独闯天下 提交于 2020-04-02 09:38:15
1、通过连接其他合法符号可以创建新的操作符。 2、除了函数调用操作符operator()之外,重载操作符时使用默认实参是非法的。 3、重载操作符的形参数目(包括成员函数的隐式this指针)与操作符的操作数数目相同,函数调用操作符可以接受任意数目的操作数。 4、作为类成员的重载函数,其形参看起来比操作数数目少1.作为成员函数的操作符有一个隐含的this形参,限定为第一个操作数。 5、如果不定义,编译器将会合成的操作符有:赋值操作符(=)、取地址操作符(&)、逗号操作符(,)、&&和||。重载之后的&&和||不再具有短路特征。 6、选择成员或非成员实现的几点经验原则: l 赋值(=)、下标([])、调用(())和成员访问箭头(->)等操作符必须定义为成员,将这些操作符定义为非成员函数将在编译时标记为错误。 l 像赋值一样,复合赋值操作符通常应定义为类的成员。与赋值不同的是,不一定非得这样做,如果定义非成员符合赋值操作符,不会出现编译错误。 l 改变对象状态或与给定类型紧联系的其他一些操作符,如自增、自减和解引用,通常应定义为类成员。 l 对称的操作符,如算术操作符、相等操作符、关系操作符和位操作符,最好定义为普通非成员函数。 7、不能滥用转换函数,应该只有一个内置类型的转换 下面是自己写的实现: #ifndef INT_H #define INT_H #include

ES6学习(1)

北城余情 提交于 2020-04-02 08:09:28
let 和 const 命令 ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。for循环的计数器,就很合适使用let命令。 下面的代码如果使用var,最后输出的是10。 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10 上面代码中,变量i是var命令声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改变,而循环内被赋给数组a的函数内部的console.log(i),里面的i指向的就是全局的i。也就是说,所有数组a的成员里面的i,指向的都是同一个i,导致运行时输出的是最后一轮的i的值,也就是10。 如果使用let,声明的变量仅在块级作用域内有效,最后输出的是6。 var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 6 变量i是let声明的,当前的i只在本轮循环有效,所以每一次循环的i其实都是一个新的变量,所以最后输出的是6。你可能会问,如果每一轮循环的变量i都是重新声明的,那它怎么知道上一轮循环的值

kd-Tree 【专题@AbandonZHANG】

半腔热情 提交于 2020-04-02 03:34:58
刚开始学习,介绍先搁着~等理解透彻了再来写~~~ 我是学习的mzry1992(UESTC_Izayoi ~)------ http://www.mzry1992.com/blog/miao/kd%E6%A0%91.html 先去看mzry1992大牛博客里的讲解吧。。。 再附两篇论文:(看英文看得好爽。。。~@.@) 《An intoductory tutorial on kd-trees》  ★(里面就介绍了kd-tree和nearest neighbour algorithm(最近邻算法)、Q nearest neighbour(Q近邻) ) 《Range Searching Using Kd-Tree.》 kd-tree入门题:    HDOJ 2966 In case of failure (最近邻,模板~)   查找平面点最近点的距离(此题中是距离的平方) /* HDOJ 2966 KD-Tree模板 */ #include #include #include #include #include #include #include #include #include #include #include #define MID(x, y) ( (x + y)>>1 ) using namespace std; typedef long long LL; //KD

深入探索C++对象模型(三)

断了今生、忘了曾经 提交于 2020-04-01 07:50:34
Data 语义学 一个class的data members,一般而言,可以表现这个class在程序执行时的某种状态。Nonstatic data members放置的是“个别的class object”感兴趣的数据,static data members则放置的是“整个class”感兴趣的数据。 C++对象模型尽量以空间优化和存取速度优化的考虑来表现nonstatic data members,并且保持和C语言struct数据配置的兼容性。它们把数据直接存放在每一个class object之中。对于继承而来的nonstatic data members(不管是virtual还是nonvirtual base class)也是如此。不过没有强制定义其间的排列顺序。 至于static data members,则被放置在程序的一个global data segment中,不会影响个别class object的大小。在程序之中,不管该class被产生出多少个objects(经由直接产生或间接派生),static data members永远只存在一份实例(甚至即使该class没有任何object实例,其static data members也已存在)。但是一个template class的static data members的行为稍有不同。 Data Member的绑定(The

const isProduction = process.env.NODE_ENV === 'production'; 作用

非 Y 不嫁゛ 提交于 2020-04-01 07:37:25
一. process 要理解 process.env.NODE_ENV 就必须要了解 process, process 是 node 的全局变量 , 并且 process 有 env 这个属性 , 但是没有 NODE_ENV 这个属性。大家可以创建一个 js (比如index.js)文件,然后打印 process(console.log(process)),在 node 环境下运行\ ,就可以看到 process 里面所有的内容(可以看到里面有 env 这个属性)。 二. process.env.NODE_ENV 的作用 这个变量并不是 process.env 直接就有的,而是通过设置得到的。 这个变量的作用是:我们可以通过判断这个变量区分开发环境或生产环境。 三. 如何设置 process.env.NODE_ENV 来源: https://www.cnblogs.com/Rivend/p/12233207.html

CF #560 div3

戏子无情 提交于 2020-04-01 04:22:58
碎碎念 只想着快了 细节考虑不周,补题时一直就奇怪当时怎么就没这么想呢, 还有题意,老是会遗漏,英文水平不够呀 还有特判问题,错误想法前的特判,改掉其他地方后特判也要改呀 对于数学规律,算出的公式看自己的解决思路来化简 写写前五题吧 后俩有空补一下 A:给定01字符串s,长度n,x,y, 0=<x<y<n;可任意对某位取反,问使得s % 10^x == 10^y需进行的最小操作数。 嘛 简单 保证s的倒数y位都为0就ok了嘛 然后倒数的 x~y位之间也都是0就可以了 嗯 搞搞, 过了,开心 早上一看 hacked了 哇 看了下代码 判断倒数第x位的时候顺手判断了一下该位是否为1, 为0则操作数++,其实保证了s没有前导0 ,x<n,那倒数x位前肯定有1存在,x位是啥就无所谓了 呜 #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include<string> #include<algorithm> #include<map> #include<queue> #include<stack> #include<list> #include<set> using namespace std; typedef long long ll; typedef pair

设计者模式

痞子三分冷 提交于 2020-03-31 23:38:00
1. 单例模式 :每个new出来的实例都需要有一个相同的方法,但是这时候如果 每个实例都新建一个这种方法,太占据内存也太慢,所以在这里有一个重要的判断:如果有实例,则返回实例;如果没有实例,则创建实例,并且返回实例。 例: class CreateUser { static shareInstance(){ if(!CreateUser.ins){ CreateUser.ins = new CreateUser('aa') } return CreateUser.ins; } constructor(name) { this.name = name; this.getName(); } getName() { return this.name; } } let c1 = CreateUser.shareInstance() let c2 = CreateUser.shareInstance() console.log(c1==c2)    2. 组合模式 :组合模式中基本对象和组合对象被一致对待;无须关心对象有多少层, 调用时只需在根部进行调用;类似DOM树 例: const MacroCommand = function() { return { lists: [], add: function(task) { this.lists.push(task) }, excute: