自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (8)
  • 收藏
  • 关注

原创 单分类支持向量机 网格搜索

参考,太久远了,应该是这个网站,但是很难搜到,国内搜索比较麻烦通过网格搜索是为支持向量机找到最佳值参数。单分类支持向量机一般拿来做异常检测任务,直接使用GridSearchCV不太好写。可以借用for循环和ParameterGrid实现,目标是AUCfrom sklearn.model_selection import ParameterGridfrom sklearn.metrics import roc_auc_scoreimport numpy as np from sklearn i

2022-04-15 10:18:52 1328

原创 开源硕士毕业论文算法

高光谱,机器学习

2022-04-14 19:34:37 1311 6

原创 ubuntu不完全手册_嵌入式开发(持续更新)

ubuntu不完全手册(嵌入式开发)1.查看某个模块版本,是否安装$ dpkg -l$ dpkg -l|grep package_name# 例如 dpkg -l|grep ncurses2.查看ubuntu下都开启了哪些服务?$ service --status-all3.解压缩,打包解压缩:tar -vxjf 文件名打包:tar -vcjf4.ubuntu下的vs code 鼠标左键按住不能选中多半是输入法的原因,切换成英文就ok了5.查看外接设备ls /dev

2021-09-22 20:52:54 187

原创 高光谱图像分类源代码(UI,波段选择,独立成分分析,人工蜂群,SVM,)

工程效果介绍用pyqt搭建了一个UI,使用了ICA,FCM-ABC两种方法做了波段选择,和全波段三种数据对比,通过SVM(支持向量机)做了高光谱图像分类,并计算OA涉及1. Pavia University 图像分类用的是支持向量机分类,简单效果好2. pyqt界面本来想用qt,但是写分类这些,python挺好用的,就用python qt写的界面,并且UI和逻辑是分类的。ui.py是整个界面的文件,progressBar.py是进度圈的代码3. 波段选择算法3.1 模糊C均值聚类+人工蜂

2021-07-18 18:55:24 1742 3

原创 QT5.9.12移植到imx6u

原子新出了QT教程,磨刀霍霍,但是配置好麻烦。一切的建立是在原子的文档《【正点原子】I.MX6U Qt移植V1.3》。无原文链接发不了转载总流程1.配置tslib,这个步骤按照原子的来没问题2.编译QT源码,出问题因为我用的是5.12.9,原子这个教程是5.5.12.1下载,解压,新建输出路径一致2.2生成一个配置脚本vi autoconfigure.sh然后输入#!/bin/sh ./configure \ -prefix /home/alientek/qt5.5.1/qt-e

2021-07-14 10:33:38 802

原创 移步pytorch出现的问题

安装安装不会出现冲突,需要同时安装torch和和torchvision,版本需要对应起来.版本对应链接gpu和cpu版本不一样标签之前用梯度是没有管标签的,但是跑这个,标签居然要从0开始,二分类标签一个1一个2然后就报错...

2021-05-27 20:24:04 81

原创 linux字符设备驱动开发总体框架(pinctrl和gpio子系统)

目录linux设备驱动开发总体框架1.修改设备树2.驱动出口驱动入口2.1 入口:注册字符设备驱动设置LED所使用的GPIO2.2 出口:3.定义设备结构体4.实现设备操作函数,5.编写设备测试APP5.1编写5.2编译5.3运行6.其他linux设备驱动开发总体框架以使用pinctrl和gpio子系统来开发的GPIO驱动来描述本节.再具体就是点灯,去他妈点了一个月的灯相对于32裸机,完成GPIO驱动需要先设置某个PIN的复用功能,速度和上下拉,再设置PIN所对应的GPIO。而linux驱动讲究驱

2021-04-11 16:06:05 281

原创 python下的spectral模块(高光谱图像处理)

Spectral Python (SPy)是一个用于处理高光谱图像数据的纯Python模块。它具有读取、显示、操作和分类高光谱图像的功能。之所以用它是因为这个对多波段图像的支持更好参考一、SPy 安装依赖模块虽然可以只用Python和NumPy来使用SPy来处理高光谱数据,但如果想使用SPy的任何图形功能,你还需要其他几个模块要在IPython中使用SPy,您需要在" pylab "模式下启动IPython(请参阅启动IPython)安装pip install spectral二、读取

2021-04-09 16:57:25 24700 25

转载 设备树

一、什么是设备树uboot启动内核用到zImage,imx6ull-alientek-emmc.dtb。bootz 80800000 – 83000000.设备树:设备和树。在单片机驱动里面比如W25QXX,SPI,速度都是在.c文件里面写死。板级信息都写到.c里面,导致linux内核臃肿。因此 将板子信息做成独立的格式,文件扩展名为.dts。一个平台或者机器对应一个.dts。二、DTS、DTB和DTC的关系.dts相当于.c,就是DTS源码文件。DTC工具相当于gcc编译器,将.dts编译

2021-04-01 20:16:39 678

原创 不能从Ubuntu主机里通过nfs下载zImage和dtb

不能从Ubuntu主机里通过nfs下载zImage和dtbuboot下载系统失败,以前都能成功,突然不能下载怎么解决查看主机能否上网查看开发版能否Ping通主机查看开发板ip是否在局域网中重复出现,可以通过关闭开发板电源,用主机去ping开发板的Ip,如果可以说明重复网段内ubuntu的IP地址是唯一,关闭Ubuntu虚拟机,用windows来ping在ubuntu的Ip,能ping通说明占用,需要改一个没被占用的IP地址开发板未接12V电源,供电不足,单靠USB供电也会出现下载不了情况

2021-03-28 21:51:00 273

转载 LED 设备驱动

LED 设备驱动目的是熟悉内存映射一、地址映射裸机LED灯实验就是操作6ULL的寄存器。Linux驱动开发也可以操作寄存器,Linux不能直接对寄存器物理地址进行读写操作,比如寄存器A物理地址为0X01010101。裸机的时候可以直接对0X01010101这个物理地址进行操作,但是linux下不行,因为linux会使能MMU。在linux里面操作的都是虚拟地址,所以需要先得到0X01010101这个物理地址对应的虚拟地址。linux初始化MMU后,就会设置好内存映射,设置好之后cpu访

2021-03-28 21:50:11 164

转载 uboot移植及linux移植+字符设备开发

uboot移植及linux移植uboot编译一、Windows下使用OTG烧写系统1、在Windos使用NXP提供的mfgtool来向开发烧写系统。需要用先将开发板的USB_OTG接口连接到电脑上。Mfgtool工具是向板子先下载一个Linux系统,然后通过这个系统来完成烧写工作。切记!使用OTG烧写的时候要先把SD卡拔出来,等USB OTG与电脑连接成功以后就可以再将SD卡插进去了。烧写系统都是烧写到NAND或者EMMC里面,二、Ubuntu下通过脚本烧写系统1、首先向SD卡烧写一个系统,

2021-03-23 20:47:14 229

转载 正点原子阿尔法开发板跨过移植进入驱动学习

跨过裸机,uboot及linux移植部分,直接进入第四章默认编译环境已经安装,虚拟机,交叉编译器…1.下载源码(包括uboot和Linux)系统盘里有开发板对应的uboot和linux源码,发送打ubuntu里内含 uboot及linux,以及根文件系统rootfs.如果不想修改MfgTool 工具中的 ucl2.xml文件,可以直接下载第三章源码用这个里的修改好的下载工具烧录系统2.解压,编译解压uboot及linux源码,并重新编译tar -vxjf namemakeu

2021-03-09 17:19:14 680

原创 QFileSystemModel

pyqt下创建文件夹,并自定义输入和缺省值(QFileSystemModel的用法)1. 获取指定的路径内容并显示 self.sample_type = QTreeView() fileDir = r'./db/sample_data' self.sample_type.setHeaderHidden(True)#不显示表头 self.sample_type.setColumnHidden(1,True)#不显示行头 self.Dirmodel = QFileSys

2021-01-22 13:42:48 905

翻译 基于注意力的卷积神经网络高光谱波段选择

原文名词Attention机制BBs building blocksDL deep learningHSI Hyperspectral image1D one dimensionalFMs feature mapsEE Elliptical Envelope概述它将新的基于注意的卷积神经网络结合起来,根据波段的重要性对波段进行加权,并利用异常检测技术选择最重要的波段。所提出的基于注意的方法是数据驱动的,在深度体系结构的不同深度重新使用卷积激活,识别光谱中信息最丰富的区域

2021-01-17 16:53:46 1883 3

原创 图像一维熵、二维熵、局部熵及python实现

1 基础熵年岁很大,建国前一年香农提出来的的,成精了。熵指的是体系的混乱的程度,越乱越大。图像熵是图像特征的一种统计形式,反映了图像中平均信息量的多少,能够反映图像各像素点的分布复杂程度。1.1 图像一维熵只能表示图像灰度值的聚集特征,不能表征空间特征。公式:H=−∑i=0255log2piH = - \sum_{i=0}^{255}log_2p_iH=−i=0∑255​log2​pi​其中Pi表示图像中灰度值为i(0≤i≤255)的像素所占的比例,熵非负1.2 二维熵为表征灰度信息的空

2021-01-15 14:08:33 19266 31

原创 pyqt 信号槽 判断信号发出者(sender)

1qt的信号槽除了一对一也可以一对多,比如多个按键的click信号链接一个槽函数。这个收就需要判断是哪一个按键发出的信号2sender()在QT里的原型是QObject::sender(),也就是对象,实例化的对象可以发送信号,返回发送信号的对象的指针,返回类型为QObject *。3pyqt里的话用起来很方便,直接self.sender()就可以直接得到了if self.sender()== 对象:判断就行4 例子class Table(QWidget):#表格 def __ini

2020-11-16 13:36:12 6913

原创 python处理ini文件(configparser模块)

代码里有些参数需要保存,下一次运行还能用,就需要要ini等文件了了。ini文件是文本文件,例如有如下[section1]name1 = value1name2 = value2option = 3[section2]name3 = value1每个section的值不会干扰获取文件中所有sectionpath='ini文件路径'conf = configparser.ConfigParser()conf.readfp(open(path,encoding="utf-8-sig"))

2020-09-29 17:21:20 367

原创 嵌套列表生成csv,读取csv,嵌套列表float转换为int

嵌套列表生成csv,读取csv,嵌套列表float转换为int列表生成csv文件a=[[1,2,3],[4,5,6],[7,8,9]]path=r'C:\Users\Administrator\Desktop\testimage\20200922_1X.csv'test=pd.DataFrame(a)test.to_csv(path, encoding='gbk')从csv中读取文件data=pd.read_csv(path,index_col=0) #将csv文件读入并转化为datafra

2020-09-22 20:05:54 857

转载 pyqt调用屏幕键盘

参考 layout.addWidget(QPushButton( '打开虚拟键盘', self, clicked=self._onOpenKeyboard)) kernelType = QSysInfo.kernelType()#操作系统的产品名称 if kernelType == 'winnt': try: path = glob.glob( .

2020-09-13 21:50:02 934

原创 pyqt下QFileSystemModel指定目录,文件过滤

pyqt下QFileSystemModel指定目录,文件过滤self.sample_data = QListView()self.Dirmodel = QFileSystemModel()self.Dirmodel.setRootPath('c:/')self.Dirmodel.setNameFilterDisables(False)#过滤掉的灰色文件不显示self.Dirmodel.setNameFilters(['*.csv'])#表示只显示.csv文件self.sample_data.

2020-09-08 23:05:01 2330 1

原创 python用np.where遍历图像像素(更快的遍历)

python np.where遍历图像像素传统for循环对于大量图片访问较慢。如何使用np.where()来访问像素 并操作呢?实例:读一个灰度图,得到所有满足条件(灰度=10)像素点坐标,并存放到列表使用for循环嵌套遍历 img=cv2.imread("./db/image_cut/image_cut2.bmp",0)#第二个参数为0代表以灰度图的方式读入 height = len(img) width = len(img[0]) listx=[] listy=[]

2020-09-02 19:48:42 12063 6

转载 python五种拷贝方法列表

a = [[10], 20] b = a[:] c = list(a) d = a * 1 e = copy.copy(a) f = copy.deepcopy(a) g = a a.append(21) a[0].append(11) print(id(a), a) print(id(b), b) print(id(c), c) print(id(d), d) print(id(e), e)...

2020-09-02 17:02:54 158

原创 #numpy数组合并,两个数组合并为一个

按照行合并方法有几种append用法和列表一样,不用在意参数里是不是有空列表(用列表代替一个参数),其他几个好像都不可这样 a = [] b = np.arange(5) print(a) print(b) d = np.append(a,b) print(d)---------输出----[][0 1 2 3 4][0. 1. 2. 3. 4.]columc_np.c_是按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等 #例一

2020-08-28 18:30:30 7427

原创 python 向c语言程序传递数组作为参数

python的for循环效率极低,计算速度也慢,比c/c++就慢多了,就a[i]+a[i+1]*256这个公式循环3万词都得接近700ms,不会其他办法,只有放在c里计算然后返回结果了下面的代码给个10个值的demo。(博主遇到的问题用了其他方法解决)c语言中代码,编译成Ctype.dll了float *trans_image_test(int raw_data[]){ static float image_8bit[10]; for (int j = 0; j<10; j = j + 2

2020-08-27 21:44:09 1757

原创 pyqt5 图片旋转

pyqt5已经不支持pyqt4中的QMatrix()类了,可以使用QTransform()#pyqt4martix =QMatrix() martix.rotate(90)#pyqt5transform = QTransform()transform.rotate(-90) image=image.transformed(transform);

2020-08-26 21:45:23 1621

原创 python用不了time模块

错误可能是下面这种TypeError: ‘module’ object is not callable‘builtin_function_or_method’ object has no attribute ‘sleep’有时是调用了同一个模块两次,from time import *import time这样就导致了同名函数与方法冲突。解决方案1 不推荐from time import *import time as ti #改个名字解决方案2 推荐import time调用时

2020-08-23 15:42:58 3142

原创 封装动态库,python取C库返回int数组指针指向的数据

dll中代码,C语言int* get_image8(SI_H* g_hDevice){clock_t start, end;static int image_8bit[143360]; //此处应该定义局部变量为静态变量 ,不然清除栈区就变成垃圾了//不初始化为static有时候也能用,但是我觉得不太安全,毕竟static是放在内存里全局变量一起的······部分初始化代码 start = clock();//和下面的end配合得到代码块时间花销 for (int n = 0; n &lt

2020-08-21 16:28:31 1477 1

原创 python下字节流数据转化为numpy数组

python下字节流数据转化为numpy数组python下字节流数据不太方便处理,一般转为numpy数组。以下代码的目的是将相邻两个字节的值求和(16位图)。数据数据原型,相机,网页,图片,串口都可能用到这种数据这里用到的数据长度是3万足有b'\xd7\x00\xd8\x00\xda\x00\xd9\x00\xd8\x00······'方法一通过.raw获得int型值,然后将两个位的数据加起来 begin = time() data = [] for i in range(

2020-08-20 21:50:46 5276

原创 create_string_buffer/Ctypes传参缓冲区地址/数组

create_string_bufferPython的string是不可修改的,所以不能传递string到一个 C/C++函数去改变它的内容,所以需要使用create_string_buffer再python里通过ctypes给指针类型的对象c_char_p,c_wchar_p 和c_void_p 等赋值时,将改变它们所指向的内存地址,这和c/c++大不相同,c/c++是修改它们所指向的内存区域的内容,这是因为python的byte对象是不可以修改的.如果你需要可改变的内存块,ctypes提供了 cre

2020-08-17 21:08:31 8324

原创 C语言DLL封装DLL,嵌套封装DLL

C语言DLL封装DLL,嵌套封装DLLctypes没能解决c_int类型会变成c_long类型这个问题。所以调库失败,有大手子可以教教我 x = c_int(0) x.value=1 print("type(x) is "+str(type(x)))type(x) is <class 'ctypes.c_long'>经过大佬的建议,重新封装原有的库,再嵌套一个DLL库,并再c环境里转换类型目前有的文件,还挺多SI_errors.hSI_sensor.hS

2020-08-15 22:35:04 975

原创 pyqt(python)下导入opencv

明确要安装的东西在python下使用的opencv库我们一般称CV2,基于对象,cv应该是基于过程,像C语言那样。要想在pyqt里使用opencv,必须安装opencv-python的库,要和自己的python版本对应。本机环境:vscode下的虚拟环境(相对来说多做一步,复制文件而已)pyqt5python3.6.5所以我需要下载支持cp36的opencv包(cp36值得就是python3.6),查看对应版本的话去这个网址.然后顺便去下载一个whl文件。后面安装,这里有个百度云链接 提取码:

2020-08-13 21:54:59 889

原创 python调用c语言的库(动态库DLL)

@真开心啊,聚精会神找一天错误没找到,看个视频摸摸鱼就找到了首先要明确的怎么导入项目所需,需要使用pyqt写界面,然后里有涉及电机和摄像头的调用,底层驱动是c语言写好了,并导出了动态库dll文件。导入方法可以使用ctypes和cffi方法导入,不过好像资料都不多我用的是ctypes在python代码的头部导入库import ctypesfrom ctypes import *AMC = ctypes.cdll.LoadLibrarylib_amc = AMC("./driver/amc

2020-08-12 22:21:47 1223

原创 pyqt显示圆形图片

用到了QPixmap,QPainter情景需要,我是在一个QGroupBox中放入了一个QLabel,然后在QLabel上面显示了一个圆形的图片 def _plain_pic(self): groupBox = QGroupBox() groupBox.setFixedWidth(1920) groupBox.setFixedHeight(945) col_2 = QHBoxLayout() ico = QLabel(

2020-08-10 18:57:20 1451

原创 pyqt下使用pyqtchart(pip安装那些事)

pyqt安装完其实是没有pyqtchart的,需要另外安装pyqt和pyqtchart是一家公司的,所以版本也是对应的。下面的方法是默认安装最新版的。如果网速不行或者安装不上可以参考我另一篇换源。pip3 install PyQtChart查看自己pyqt版本,不需要可以跳过from PyQt5.QtWidgets import QApplication, QWidgetfrom PyQt5.QtCore import QT_VERSION_STRfrom PyQt5.Qt import PY

2020-08-08 13:52:20 7361 2

原创 pyqt下QSlider()和QSpinBox()互相改变

初始化self.splider = QSlider(Qt.Horizontal)#滑块self.splider.setMinimum(20)#最小值self.splider.setMaximum(900)#最大值self.splider.setSingleStep(10)#步长self.splider.setTickPosition(QSlider.TicksAbove)#设置刻度位置,在上方self.splider.setTickInterval(5)#设置刻度间隔self.splider.

2020-08-07 20:16:25 874 1

原创 支持向量机SVM和最小二乘支持向量机LSSVM

SVM在解决小样本、非线性及高维模式识别问题中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中目标找到一个超平面,使得它能够尽可能多的将两类数据点正确的分开,同时使分开的两类数据点距离分类面最远。超平面SVM考虑寻找一个满足分类要求的分割平面(超平面),并使训练集中的点距离该分割平面尽可能地远,即寻找一个分割平面,使其两侧的空白区域(margin)最大。超平面是从n维到n-1维空间的一个映射子控空间解决方案解决方法:构造一个在约束条件下的优化问题,具体的说是一个约束二次规划问

2020-08-04 21:12:46 6039

原创 python画图各种函数用法

np.linespace生成指定范围内指定个数的一维数组def linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None):在指定的间隔[“start”,“stop”]内均匀地返回数字。返回“num”个等间距的样本endpoint如果为"Ture",“stop"是最后一个值,如果为"False”,生成的数组不会包含"stop"值retstep如果为"Ture",会返回样本之间的间隙>>> np.

2020-08-04 17:15:31 1548

原创 jupyter保存.ipynb文件为.py

安装,打开,会顺便打开一个网页上传.ipynb文件点一下文件新页面可以看整个文件,还可以file->download as py

2020-08-04 14:14:25 4523

原创 windows下的pyqt5的安装并测试

安装要装的东西python肯定装了,那pip也顺便装了如果没有改pip源的可以改下,之前的速度太慢了我用的豆瓣源,然后得装pyqt5(本来还需要装sip的,但是装pyqt5的时候回自动帮你装sip,而且版本匹配)PyQt5-toolspip3 install PyQt5pip3 install PyQt5-tools#豆瓣源下载pip3 install pyqt5 -i http://pypi.douban.com/simple --trusted-host=pypi.douban.c

2020-08-03 20:21:58 319

code_7_MulThread.zip

本实例是基于QT5.9的多线程投骰子项目,内容是其开发指南中的多线程,但是源代码只有一个主线程和一个子线程,在此基础上新增一个线程打印线程ID,同时打印了投骰子线程的ID,可以看到是不同线程运行。main.cpp里有说明

2020-07-23

code_7_MulThread.zip

本实例是基于QT5.9的多线程投骰子项目,内容是其开发指南中的多线程,但是源代码只有一个主线程和一个子线程,在此基础上新增一个线程打印线程ID,同时打印了投骰子线程的ID,可以看到是不同线程运行。此版有问题,审核请不通过

2020-07-23

imx6ull的时钟配置文件

源程序来自正点原子嵌入式开发裸机部分时钟配置。做了详细注释,当做一个笔记。源程序来自正点原子嵌入式开发裸机部分时钟配置。做了详细注释,当做一个笔记。源程序来自正点原子嵌入式开发裸机部分时钟配置。做了详细注释,当做一个笔记。

2020-06-14

frp_0.33.0_linux_amd64.tar.gz

git上下载太慢了。这里上传了不要积分直接下。frp主要就是拿来进行内网穿透的,好像还是国人写的,很厉害,中文文档很细致

2020-05-06

计算机四级嵌入式题库

计算机四级,嵌入式系统,完整版题库。无水印。Word版本支持再编辑。

2018-08-17

基于C++的PID调节

绝大多数关于PID的调节都是基于C语言的,这个也是因为c语言在硬件方面的快捷所致,不否认C语言下的PID的方便,但是想要参考一下C++的PID基本调节可以参考本Demo

2017-09-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除