c语言
文章平均质量分 73
qq_43133135
这个作者很懒,什么都没留下…
展开
-
GrabCut分析
中心像素和邻域像素的相似性有两个部分:位置相似和像素值相似位置相似性:两个像素位置越接近,我们认为越相似。如以C为中心的邻域内,A和C的距离是dis=2dis=\sqrt2dis=2,B和C的距离是dis=1dis=1dis=1,相似性可以用spos=1diss_{pos}=\frac{1}{dis}spos=dis1来衡量像素值相似:两个像素颜色越接近,我们认为越相似。如A和C的L2距离是dL2=∣v(a)−v(b)∣2d_{L2}=|v(a)-v(b)|^2dL2=∣v(a)−v(b)∣2。原创 2022-06-10 07:20:28 · 377 阅读 · 0 评论 -
为Cortex-M4编写优化的DSP代码
为Cortex-M4编写优化的DSP代码本节展示如何使用优化指南和DSP指令来开发优化代码。我们看看Biquad(双二阶)滤波器,FFT蝴蝶操作和FIR滤波器。对于每个例子,我们都从通用的C代码开始,然后在应用优化策略时将其映射到Cortex-M4 DSP指令。Biquad(双二阶)滤波器Biquad双二阶滤波器是一种二阶递归或IIR滤波器。双二阶滤波器是双二阶(两个极点和两个零点)的IIR滤波器。双二阶滤波器在整个音频处理中用于均衡、音调控制、响度补偿、图形均衡器、交叉器等。高阶滤波器可以用原创 2022-05-31 09:50:34 · 1525 阅读 · 0 评论 -
白话 进程与线程
联系进程负责分配资源,而线程负责执行程序。并且进程是线程的容器。进程我们都知道进程是操作系统分配资源的最小单位。我们可以把它看做一个类:class Process{ //进程资源 int resource[100]; //所包含的线程 void threshfunction1(); void threshfunction2(); .......}创建进程进程之间全局变量不共享,相互独立,并且子进程的资源是对主进程的一个拷贝。其实就相当于于我们new了一个原创 2022-04-13 11:30:26 · 133 阅读 · 0 评论 -
文件操作入门
文件读写过程我们知道,文件系统的作用是把数据进行具象化操作,比如我们把数据看做大象,数据接口看做冰箱口,冰箱口把世界划分为两部分:冰箱里和冰箱外。问:把大象放进冰箱里要几步?和上述步骤一样,将数据放入文件也需要三步:1、打开文件2、将数据写入文件3、关闭文件file = open("test.txt","w") #打开文件file.write("数据") #写入数据file.close() #关闭文件将数据从文件取出也需要三步:1、打开文件2、将数据从文件读出3、关闭文原创 2022-04-09 13:18:40 · 379 阅读 · 0 评论 -
C代码优化技巧
指针与数组选择一种合适的数据结构很重要。如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。在许多种情况下,可以用指针运算代替数组索引,这样做常常能产生又快又短的代码。与数组索引相比,指针一般能使代码速度更快,占用空间更少。使用多维数组时差异更明显。下面的代码作用是相同的,但是效率不一样 数组索引原创 2022-03-29 12:27:28 · 1035 阅读 · 0 评论 -
PNN概率神经网络
1、贝叶斯决假设对于测试样本xxx,共有mmm中类别可能 {w1,⋯,wm}\{ w_1 , ⋯ , w _m\}{w1,⋯,wm},则判断样本类别的贝叶斯决策是:max{p(w1∣x),p(w2∣x),⋯ ,p(wm∣x)}\max \{ p({w_1}\left| x \right.),p({w_2}\left| x \right.), \cdots ,p({w_m}\left| x \right.)\}max{p(w1∣x),p(w2∣x),⋯,p(wm∣x)}2、PNN网络如下原创 2022-02-24 05:43:20 · 3995 阅读 · 0 评论 -
vscode极简安装教程
VScode编辑器安装VScode本质上是一个文本编辑器,其他东西都需要你自己配置和安装首先,去下载对应的系统版本:https://code.visualstudio.com/这里我用windows版本,然后直接安装就可以,没什么要注意C++语言工具安装C++编译器安装自己去下载一个MinGW:http://mingw-w64.org/doku.php/download下完一路安装即可:然后配置一下环境变量,这里为装的是E盘MinGW文件夹下,路径如下:VSCode工程测试新建一原创 2021-03-27 19:45:08 · 1026 阅读 · 0 评论 -
常用排序算法小结
常用排序算法常用到的排序算法,大概就就4、5种:冒泡排序,选择排序、快速排序、桶排序、计数排序我们本篇假设排序是从小到大排序,假设有一个int 数组,1000个元素:int data[1000];排序的结果就是:data[0]≤data[1]≤...≤data[999]data[0] ≤ data[1]≤ ...≤data[999]data[0]≤data[1]≤...≤data[999]思想分类从排序思想上,我们可以这样分类:冒泡和选择排序,基于两两比较,采用递归的法:dat原创 2021-02-02 12:49:52 · 103 阅读 · 0 评论 -
线性回归:最小二乘、泰尔森估计、RANSAC
最小二乘法(LSM)x=[ 0,1,2,3…]y=[ 2,4,6,8…]矩阵法公式:for (int i = 0; i < num; i++){ sum_x += x[i], sum_xx += x[i] * x[i], sum_y += y[i], sum_xy += x[i] * y[i];} a0 = (sum_x * sum_xx - sum_xy * sum_x) / (sum_xx * area - sum_x * sum_x); a1 = (sum原创 2020-12-17 12:34:50 · 2896 阅读 · 0 评论 -
C语言bug总结
C语言bug总结可能以前也碰到过相应的问题,但是一直不是很重视,今天大概总结一下。随机bug玩51单片机的时候,有一次函数太多了,hex比单片机内存还大,内存溢出了,导致某些全局变量被随机修改,然后还可能自动死循环。传参/数据随机bug很多时候由于没有加头文件导致的,或者头文件里头没有相应的声明。如果前面没有声明的情况下调用某些函数,如果没有传参可能问题不大,要是传参的话,可能就会出现参数错误。强制转换数据值bug强制转换数据比如u16转u8,很多时候会在截断的地方出bug,可以尝试改成判断形原创 2020-09-10 13:22:47 · 925 阅读 · 0 评论 -
c语言文本处理
从字符串中提取开头的数字:在stdlib标准库中:long int strtol(const char *nptr,char **endptr,int base);函数会扫描nptr字符串,跳过前面的空格字符,若遇数字则开始转换,再遇到字符(包括空格)后便返回。endptr是一个传出参数,函数返回时指向返回时扫描的指针位置。base代表采用的进制方式,范围从2至36,当base值为0时...原创 2019-07-16 18:21:49 · 1432 阅读 · 0 评论