
程序
嵌入式3分钟
一起学习嵌入式!
展开
-
C语言 Windows下使用gcc制作静态库与动态库
前言将函数封装成库不仅有利于代码的复用, 还可以在不公开源码的情况下给他人使用函数的功能。本文记录了Windows下使用gcc制作静态库的过程。一、测试代码编写测试函数为一个加法函数,它将被制作成静态库,并被函数main()调用。各个文件如下所示,它们被放在同一个目录下。add.hint add(int a, int b);add.c#include "add.h"int add(int a, int b){ return a + b;}main.c#in.原创 2021-03-30 19:21:31 · 5534 阅读 · 3 评论 -
C语言 二进制文件读写实例讲解
前言二进制文件的读写是程序员们经常会遇到的一个场景,难是不难,但如果不熟悉的话,等到要用的时候还是会着急忙慌的。因此本文将结合一个具体的例子来介绍C语言中的二进制文件读写,这也是我自我学习的一个记录。一、函数介绍在本例中,我们尝试在一个文件中写入10个字节的数据,其中每个字节均为0xFF,然后我们再将数据读取出来。为了完成这个任务,我们需要三个函数,我们一个个来看。第一个函数为fopen(),它的函数原型如下FILE *fopen(const char *__restrict__ _F.原创 2021-03-22 21:02:08 · 23872 阅读 · 4 评论 -
Matlab——二进制转十进制(包含小数转换)
Matlab中有二进制转十进制的函数,“bin2dec”,示例如下:但是这个函数只能进行整数转换,如果有小数的话:由于需要,最近写了一个小程序,实现带小数的二进制转十进制,先看代码:clcclear all% 整数部分bit1 = 3;bit_integer = [0,1,0];% 小数部分bit2 = 2;bit_decimal = [1,0];intege...原创 2019-04-03 10:10:13 · 32691 阅读 · 1 评论 -
MATLAB实现混淆矩阵评价指标(精度,召回率,F1分数)
记录一下,在学习用SVM分类时,需要对分类结果进行评价,光有正确率是不够的,所以就使用了混淆矩阵。原理的话,很多博客上都有,但为了便于理解程序,就简单讲一下。结合程序,我们的类别是(-1,1),在Matlab中,类别是按照值的大小排的,即-1在前。但为了更加直观明了,解释理论的时候依然是1为正类。 1 -1 1 TP FN -1 FP...原创 2018-10-27 10:54:20 · 13110 阅读 · 4 评论 -
MATLAB中实现数据 [0,1] 归一化
记录一下,在做机器学习时,数据处理部分要花很多精力。数据处理的方式有很多种,今天记录的是[0,1]归一化,该法可以避免在较大数值范围内的特性凌驾于较小数值范围内的特性,先看下原理。设序列代表特性A,对它们进行变换则得到的新序列下面看代码:clcclear all% 最后一列是标签,不做标准化data0 = [1,2,1;3,2,-1;1,4,1];[d_r, d_c]...原创 2018-10-18 16:09:55 · 25089 阅读 · 2 评论 -
树莓派通过串口与计算机通信
希望此文可以解决部分朋友的问题。第一步:用“USB TO TTL”将树莓派和计算机连接。第二步:在计算机安装“USB TO TTL”的驱动第三步:在计算机上安装串口调试助手。第四步:到https://pypi.org/project/pyserial/上下载pyserial安装包,给树莓派装上。第五步:在树莓派终端输入python -m serial.tools.list...原创 2018-09-29 20:07:49 · 2243 阅读 · 3 评论 -
MATLAB产生按顺序排列的自然数一维向量
记录一下,一个小技巧。用MATLAB产生"[1, 2, 3, 4, 5,...]"这样的按顺序排列的自然数一维向量。实现这个功能其实只要两行代码:a = randperm(10);b = sort(a);看下结果:补充:其实可以更简单:a = (1:10);...原创 2018-10-08 15:07:13 · 21636 阅读 · 0 评论 -
Matlab使用交叉验证
在做机器学习时,经常要用到交叉验证来分配数据,故在此记录一下。所谓交叉验证,就是将一个数据集分为K份,然后取其中一份作为测试集,剩余K-1份作为训练集。然后,取另一份作为测试集,其余K-1份作为训练集......如此循环,直到每一份都做过测试集为止。用的比较多的是10折交叉验证,代码如下:clcclear all% 导入数据data = load('F:\work_matlab\Mat...原创 2018-09-25 14:41:39 · 22000 阅读 · 4 评论 -
Matlab产生动态变化的字符串,便于将数据批量存入表格
记录一下。在使用Matlab跑程序的时候,需要将最后的结果存入表格,例如:xlswrite('xxx.xls',result, 'a1:i1');此处只保存一行,所以 ‘result’ 是个一维向量。上述代码只能适用于跑一次程序的情况。下次跑的时候,我们需要改为:xlswrite('xxx.xls',result, ‘a2:i2’);即存入表格的下一行,从而避免第一行数...原创 2018-09-04 14:47:13 · 4026 阅读 · 0 评论 -
Python中一维向量和一维向量转置相乘
在Python中有时会碰到需要一个一维列向量(n*1)与另一个一维列向量(n*1)的转置(1*n)相乘,得到一个n*n的矩阵的情况。但是在python中,我们发现,无论是“.T”还是“np.transpose”都无法实现一维向量的转置,相比之下,Matlab一句“ a' ”就能实现了。那怎么实现呢?我找了个方法。请看:即,我们把向量reshape一下,如此便实现了一维向量与一维向量转置相乘为矩阵的...原创 2018-06-30 16:18:57 · 14936 阅读 · 8 评论 -
Python实现识别多个条码/二维码(二)
这篇博客实现的是“Python实现识别多个条码/二维码(一)”未完成的解码任务。由于系统坏了,软件重装等一系列原因,所以拖到现在。。不好意思哈。 在上一篇中我们已经能把两个条形码找出并框起来了,接下来就是要解码。先上代码吧。from sys import exitfrom Image import _ImageCropfrom PIL import Imageimpo...原创 2018-06-18 09:54:03 · 7341 阅读 · 12 评论 -
Python实现识别多个条码/二维码(一)
对于条码的识别程序,网上有很多,不过很多都是只识别一个,并且此处的“识别”指的是找出图片中的条码,并没有对条码进行译码。本篇博客将先实现第一个功能,即,找出图中的多个条码。下篇博客会实现第二个功能,即,对找出的条码进行译码。下面看代码:from sys import exitimport numpy as npimport cv2 # 加载图片并把它转换为灰度图片ima...原创 2018-04-20 13:01:05 · 9884 阅读 · 0 评论 -
用Python将数据写入Excel表格中
最近在学习Libsvm,使用它需要有Libsvm格式的数据。虽然有FormatDataLibsvm.xls可以更改数据格式,但是要把原始数据手动输入Excel中可就不容易了。所以就用Python写了个简单的程序将数据存入表格中。 上代码import numpy as npimport xlwt#读入数据data_file = 'D:/.../ionosphere.data'#...原创 2018-03-22 14:35:17 · 19544 阅读 · 0 评论 -
Python实现投影法分割图像(二)
在上篇博客中,我们已经实现了水平投影和垂直投影图的绘制。接下来,我们可以根据获得的投影数据进行图像的分割,该法用于文本分割较多,所以此处依然以上次的图为例。 先把上次的两幅图搬过来,方便讲解。 上面两图分别从垂直和水平方向描述了图像中文本的分布。我们想象一下,将两幅图重叠起来(当然这里比例要调整下),那么我们就能得到四个重...原创 2018-03-02 15:28:39 · 12158 阅读 · 16 评论 -
Python实现投影法分割图像(一)
投影法多用于图像的阈值分割。闲话不多说,现用Python实现。上代码。import cv2import numpyimg = cv2.imread('D:/0.jpg', cv2.COLOR_BGR2GRAY)height, width = img.shape[:2]#resized = cv2.resize(img, (3*width,3*height), interpolation=c...原创 2018-02-26 09:27:40 · 12927 阅读 · 4 评论