解析函数

【darknet源码解析-29】图像RGB2HSV与HSV2RGB格式互转

喜欢而已 提交于 2020-01-22 18:24:23
本系列为darknet源码解析,由于在image.c中涉及到图像的RGB,YUV,HSV格式,在本文我们将image.c中涉及到的rgb_to_hsv()函数以及hsv_to_rgb()函数进行解析. RGB格式转为HSV格式 如果max=0 如果max!=0 对应源码如下: void rgb_to_hsv(image im) { assert(im.c == 3); int i, j; float r, g, b; float h, s, v; for(j = 0; j < im.h; ++j){ for(i = 0; i < im.w; ++i){ r = get_pixel(im, i , j, 0);//获取指定位置指定通道的像素值 g = get_pixel(im, i , j, 1); b = get_pixel(im, i , j, 2); float max = three_way_max(r,g,b);//获取rgb最大值 float min = three_way_min(r,g,b); float delta = max - min; v = max; if(max == 0){ s = 0; h = 0; }else{ s = delta/max; if(r == max){ h = (g - b) / delta; } else if (g == max)

JavaScript之function(下)简介

半腔热情 提交于 2020-01-22 04:24:38
1.作用域的概念 任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。 局部作用域和全局作用域 在JavaScript中,变量的作用域有全局作用域和局部作用域两种。 引入: < body > < script > //1.变量,函数作用的范围??? //2.变量为什么前置访问undefined,而函数可以任何地方调用???? < / script > < script > alert ( a ) //报错Uncaught ReferenceError: a is not defined(为什么???) < / script > < script > alert ( a ) //undefined var a = 3 ; alert ( a ) ; //3 < / script > < script > alert ( a ) //3 < / script > < / body > 全局作用域(变量):整个程序都有效,即整个代码中都可以调用(特殊:变量前面没有添加var变成全局的属性,也是整个程序都有效)。 (1)全局作用域(全局变量):对整个script块内都是有效,也可以理解成作用于整个文档。(一般情况下一个文档只有一个script块,要是有多个script

小内存堆管理算法详细解析

偶尔善良 提交于 2020-01-21 11:51:20
1、小内存堆管理算法介绍 本文所介绍的内存堆管理是RT Thread操作系统中的小内存管理算法,参考mem.c源文件。这个程序适用于小内存的CPU,比如像STM32F这样的只有几十-几百KB内存的处理器。整个内存堆的处理算法简洁,高效,现对其中的原理做详细的介绍。首先先写上整个源代码,如下。内存堆的函数只有主要的4个函数:   rt_system_heap_init   rt_malloc   rt_free   plug_holes /*头文件中的相关宏定义 define in header file*/ #define HEAP_MAGIC 0x1ea0 struct heap_mem { /* magic and used flag */ rt_uint16_t magic; rt_uint16_t used; rt_size_t next, prev; #ifdef RT_USING_MEMTRACE rt_uint8_t thread[4]; /* thread name */ #endif }; /** pointer to the heap: for alignment, heap_ptr is now a pointer instead of an array */ static rt_uint8_t *heap_ptr; /** the last entry,

vue的双向绑定原理及实现

橙三吉。 提交于 2020-01-20 18:35:19
vue的双向绑定原理及实现 (摘抄别人的,但别人也是摘抄的 ,不知道原创是谁,看到了 在补上) 前言 使用vue也好有一段时间了,虽然对其双向绑定原理也有了解个大概,但也没好好探究下其原理实现,所以这次特意花了几晚时间查阅资料和阅读相关源码,自己也实现一个简单版vue的双向绑定版本,先上个成果图来吸引各位: 代码: 效果图: 是不是看起来跟vue的使用方式差不多?接下来就来从原理到实现,从简到难一步一步来实现这个SelfVue。由于本文只是为了学习和分享,所以只是简单实现下原理,并没有考虑太多情况和设计,如果大家有什么建议,欢迎提出来。 本文主要介绍两大内容: 1. vue数据双向绑定的原理。 2. 实现简单版vue的过程,主要实现{{}}、v-model和事件指令的功能。 相关代码地址: https://github.com/canfoo/self-vue vue数据双向绑定原理 vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的,那么vue是如果进行数据劫持的,我们可以先来看一下通过控制台输出一个定义在vue初始化数据上的对象是个什么东西。 代码: var vm = new Vue({ data: { obj: { a: 1 } }, created: function () { console.log(this.obj); } }); 结果:

C++关键字的解析(C++相关)

£可爱£侵袭症+ 提交于 2020-01-20 08:33:25
inline:对代码展开,拿空间换时间 namespace解决同名冲突 noexcept:不抛出异常声明函数 extern:主要用于不同文件常量共享 not=! not_eq= != nullptr C++11引入空指针主要用于定义模板类时和0的区别 operator:重载操作符 or = || or_eq = |= reinterpret_cast转换 signed:代符号的int static静态声明可以放文件里表示文件范围内全局可见且编译的时候就已经分配内存空间,放函数里表示函数的一个状态只在第一运行时执行一次,放结构体里只是从属是所有结构体共用的不占结构体size static放结构体里的情况 static_assert:检测编译期条件 assert:运行时候检测代码 class和struct主要区别在于默认继承和访问权限class是private,struct是public其余基本一样 using和typedef类似 来源: CSDN 作者: 昔拉再世 链接: https://blog.csdn.net/qq_39885372/article/details/103848163

JavaScript-函数

孤人 提交于 2020-01-20 03:01:32
函数 什么是函数? 函数:就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用。 函数使用分为两步:声明函数和调用函数 声明函数 // function 函数名() { // // 函数体 // } function sayHi() { console.log('hi~~'); } // (1) function 声明函数的关键字 全部小写 // (2) 函数是做某件事情,函数名一般是动词 sayHi // (3) 函数不调用自己不执行 调用函数 // 函数名(); sayHi(); // 调用函数的时候千万不要忘记加小括号 函数的封装 函数的封装是把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口 简单理解:封装类似于将电脑配件整合组装到机箱中(类似快递打包) 利用函数计算1-100之间的累加和 // 1. 声明函数 function getSum() { var sum = 0; for (var i = 1; i <= 100; i++) { sum += i; } console.log(sum); } // 2. 调用函数 getSum(); getSum(); 函数的参数 在声明函数时,可以在函数名称后面的小括号中添加一些参数,这些参数被称为形参,而在调用该函数时,同样也需要传递相应的参数,这些参数被称为实参。 形参

C++ 虚函数表解析

[亡魂溺海] 提交于 2020-01-18 11:39:48
转自: c++虚函数 大牛的文章,就是通俗易懂,言简意赅。 前言 C++ 中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术, RTTI 技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的 C++ 的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家 一个清晰的剖析。 当然,相同的文章在网上也出现过一些了,但我总感觉这些文章不是很容易阅读,大段大段的代码,没有图片,没有详细的说明,没有比较,没有举一反三。不利于学习和阅读,所以这是我想写下这篇文章的原因。也希望大家多给我提意见。 言归正传,让我们一起进入虚函数的世界。 虚函数表 对 C++ 了解的人都应该知道虚函数( Virtual Function )是通过一张虚函数表( Virtual Table )来实现的。简称为 V-Table 。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了这个实例的内存中,所以

js作用域的理解

本小妞迷上赌 提交于 2020-01-18 03:29:27
script:自上而下 全局变量、全局函数 函数:由里到外 浏览器:    “JS解析器”      1)“找一些东西”: var function       参数 a = undefine 所有的变量,在正式运行代码之前,都提前赋了一个值:未定义       fn1 = function fn1 (){ alert (2); } 所有的函数,在正式运行代码之前,都是整个函数块       JS 的预解析原则: 遇到重名的:只留一个!变量和函数重名了,就只留下函数      2)逐行解读代码: 表达式( = + - * / % ++ -- ! )可以修改预解析的值! 注意:函数块不要放在 if/ else、 for的 {}里面执行; 函数如果带参数,预编译 先找 参数的声明 并且把 实参赋值给形参,再执行找函数的操作 代码解析至少分两步 1)预解析:查找var,function参数例如下面这个例子 a= 未定义 fn1={alert(2)}函数的话,是整个整体 2):逐行读代码:类似=+-%*等都是表达式,表达式可以改变值 example1: <script> alert(a) //最终结果:undefiner var a=1 function fn1(){ alert(alert(2)); } </script> 分析:   预解析: a=未定义;fn1=function

js知识点小结

你。 提交于 2020-01-18 03:16:54
文章目录 1、原始值和引用值类型及区别 2、判断数据类型typeof、instanceof、Object.prototype.toString.call()、constructor 3、类数组与数组的区别与转换 4、 数组的常见API 5、bind、call、apply的区别 6、new的原理 7、如何正确判断this(区别箭头函数) 8、严格模式与非严格模式的区别 9、原型和原型链 10、prototype与__proto__的关系与区别 11、继承的实现方式及比较 12、作用域和作用域链、执行上下文 13、闭包及其作用 14、深拷贝与浅拷贝 15、防抖和节流 16、Js事件绑定时,函数名加括号和不加括号区别 17、DOM常见的操作方式 18、 Array.sort()方法与实现机制 19、 Ajax的请求过程 20、JS的垃圾回收机制 21、JS中的String、Array和Math方法 22、addEventListener(DOM2级事件处理程序)和onClick()(DOM0级事件处理程序)的区别 23、立即执行函数 24、整个HTML解析过程与JS脚本解析和执行顺序 25、new和Object.create的区别 26、DOM的location对象 27、浏览器从输入URL到页面渲染的整个流程 28、跨域、同源策略及跨域实现方式和原理 29、浏览器的回流(Reflow

JS作用域,浏览器解析原理

家住魔仙堡 提交于 2020-01-18 03:16:53
---恢复内容开始--- 浏览器: JS解析器:这儿理解为两步 1)JS的预解析:“找一些东西”:var function 参数; (1)所有的变量,在正式运行代码之前,都提前赋一个值:未定义 a=undefined; (2)所有的函数,在正式运行代码之前,都是整个函数块 fn1=function fn1(){alert(2);} 2)逐行解读代码(在第一步形成的仓库的基础上解读) 表达式:= + - * / % !++ -- ...... 逐行读到表达式的时候会改变与预解析中变量的值 注:JS的预解析中遇到重名的:只留一个,当函数名和变量名相同时,就只留下函数 作用域: 域:空间、范围、区域...... 作用:读、写 域: (1)script:全局变量,全局函数; 多个script之间:自上而下,将上一个变量读到仓库,执行完后 再进行到下一个script,上一个script中的变量值仍存在仓库中 (2)函数 由里到外(局部到全局找变量值) 作用域链:由里到外,由局部到全局 11 ---恢复内容结束--- 来源: https://www.cnblogs.com/fengxiaopiaoer/p/5621424.html