- 博客(48)
- 资源 (3)
- 收藏
- 关注
原创 Python 图片处理笔记
1. 计算 一列 或者一行的 RGB avg然后,根据数据统计可以分析出边框,但是对于 图像这种差异不明显的图片,无法分离出;#彩色图像,进行RGB到灰度的转换 # print(binary_image.shape) #改为单通道。img = cv2.medianBlur(image, 5) #中值滤波,去除黑色边际中可能含有的噪声干扰。#该函数使用中值滤波器来平滑图像,可以消除图像中的小点,该值越大,则消除的点越大。#大于3的像素点,都替换成纯白色(RGB==255)
2023-09-13 22:18:52
965
原创 图片操作笔记-滤波-python
双边滤波是一种非线性滤波方法,是结合了图像的邻近度和像素值相似度的一种折中,在滤除噪声的同时可以保留原图的边缘信息。其中(3,3)为滤波器的大小;又称为脉冲噪声,它是一种随机出现的白点(盐噪声)或者黑点(椒噪声),类似把椒盐撒在图像上,因此得名,如电视里的雪花噪声等。在滤波效果上,引导滤波和双边滤波差不多,然后在一些细节上,引导滤波较好(在PS的磨皮美白中,经过亲生实践,效果更好)。两者在视觉上的区别就是,高斯噪声是和原来图像像素值相关的噪声,而椒盐噪声则是很多的黑白像素点。
2023-09-12 15:27:10
276
原创 Centos 7 初始化配置(1)
系统:CentOS-7-x86_64-Minimal-2009.iso安装minimal version。1.config networkyum install net-tools # 安装网络工具包:ifconfig #默认是dhcp模式,配置一个开机启动即可“ONBOOT=yes”cat /etc/sysconfig/network-scripts/ifcfg-enp0s25 TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOT
2021-11-17 22:35:16
1829
原创 存储-wear leveling
冷数据(Cold Data)热数据(Hot Data)年老的(Old block)块年轻的(Young block)块。Cold Data就是用户不经常更新的数据,比如用户写入SSD的操作系统数据、只读文件数据、小电影等Hot Data(Thream data)用户更新频繁的数据。数据的频繁更新,会在SSD内部产生很多垃圾数据(新的数据写入导致老数据失效)。Old block就是擦写次数比较多的闪存块Young block擦写次数EC(Erase Count)比较少的闪存块Dynam
2021-06-25 08:02:24
391
原创 (闪存)存储基础知识
闪存的特性:1.闪存在写之前必须先擦除,不能覆盖写,于是固态硬盘才需要垃圾回收(Garbage Collection,或者叫Recycle);2.坏块:闪存每个块(Block)擦写次数达到一定值后,这个块要么变成坏块,要么存储在上面的数据不可靠;其次闪存出厂时存在坏块。因此需要ECC纠错保护。固态硬盘固件必须做磨损平衡,让数据平均写在所有块上,而不是盯着几个块拼命写(不然很快固态硬盘就报废了)3.Read Disturb 读干扰读干扰影响的是同一个block中的其他page,而非读取的闪存页本身
2021-05-07 14:42:01
4313
原创 linux内核实现-process schedule
tasking schedule base principles 调度的基本原理kernel 任务调度的对象是 thread调度策略决定何时让什么进程运行。疑问:多线程的程序如何调度的?1.Multitasking多任务操作系统:同时并发的交互执行多个进程的操作系统多任务操作系统能使多个进程处于阻塞或者睡眠状态:尽管位于内存,但不被投入执行;利用内核阻塞自己,直到某一时间发生。相关的名词:cooperative multitasking:除非进程主动停止(exit 或者y..
2021-02-23 15:43:21
264
原创 算法整体分类整理笔记
常见的算法分类1.排序问题 sorting插入排序 选择排序 冒泡排序 快速排序2.查找问题searching顺序查找 二分查找 分块查找 二叉排序树查找 哈希查找3.图的问题graph顶点集到边集构成的集合;最大流问题,多播路径问题遍历算法(深度优先,广度优先) 最短路径算法 Dijstra 有向图的拓扑排序4.组合问题Combinatorial Problem组合优化问题,旅行问题Travelling sales Problem5.几何问题 Geo
2021-01-22 10:51:16
217
原创 算法-递归
递归简介递归算法是一种通过自身调用自身或者间接调用自身来达到解决问题的算法;基本思想是把一个要求解的问题的划分成一个或者多个规模较小的子问题,这些子问题与原问题保持同一类型;特性:规模为n的问题可以转化为规模较小的问题,前一次的输出为后一次的输入 递归必须是次数有限的,且每一次递归调用后,越来越近似于限制条件 必须有结束递归的条件,n=1是得解递归优缺:进行重复计算时算法更直观便于理解,易验证缺:递归不断地进行函数调用,运行效率低,占用空间较多,此时使用循环效率会大大提高
2021-01-22 10:50:26
330
原创 【android】 日志获取
日志信息:boot日志,通过串口获取 内核日志:通过dmesg 获取 系统日志:通过logcat,dumpsys获取 APP日志:通过am命令获取1.boot日志boot日志是android 从上电开始的输出,主要通过串口获取。2.内核日志dmesg获取方法:命令行样例:【cat /proc/kmsg】【dmesg -c】内核日志,主要是内核阶段打印,当需要调试驱动时,可以使用"kernel动态调试[dynamic_debug]"功能kernel编译阶段打开 CO..
2020-12-01 17:30:42
2625
1
原创 【android 7.1.2】系统启动
启动概述第一步:系统引导bootloader,即xxx_aboot.bin文件加电后,CPU将先执行 bootloader程序,然后bootloader首先会读寄存器地址base + APP_DATA1的内容, 根据这个地址的值决定是否进入recovery模式或者其它模式。bootloader还会读取MISC分区第一块的内容, 决定进入recovery模式还是升级基带Baseband Processor(BP)或做其它事情而上述寄存器与分区的值是有按键触发或者软件触发的。开机按reset+返回键,
2020-12-01 14:47:53
426
原创 easycwmp解读(1.3.1)-添加自定的数据模型
TR069协议中规定,自定义的节点都是以"X"开头的,本文我们以添加"X_ATM_Server"节点为例。节点设计节点名称类型节点名InternetGatewayDevice.X_ATM_Server.obj子节点InternetGatewayDevice.X_ATM_Server.Enablexsd:boolean子节点InternetGatewayDevice.X_ATM_Server.Statusxsd:String子节点InternetGat
2020-06-16 16:29:31
2444
9
原创 easycwmp解读(1.2.2)-easycwmp脚本模块分析-common
文件路径:源码:ext/openwrt/scripts/functions/common/common设备: /usr/share/easycwmp/functions/主要功能common函数是整个模块的核心,它负责整个模块的处理方法,主要功能如下:操作方法的调用Json个数数据输出通用函数实现源码解析分析的函数:GET方法,SET方法,Inoform相关的函数[line:060]common_set_parameter_notificationcommon_set_parame
2020-06-16 14:44:35
1553
原创 easycwmp解读(1.2.1)-easycwmp脚本模块分析-easycwmp.sh
文件路径:源码:ext/openwrt/scripts/easycwmp.sh设备路径:/usr/sbin/easycwmp功能分析easycwmp.sh脚本是整个脚本模块的入口,easycwmp.sh主要功能如下是对入参的处理,根据不同的入参选择相关的操作方法.对uci操作进行封装定义脚本存放目录定义模块运行过程中的缓存文件,日志文件模块运行过程中的全局变量源码解读1.入参处理#!/bin/sh# Copyright (C) 2012-2014 PIVA Software &
2020-06-16 09:48:21
1960
原创 easycwmp解读(1.2.0)-easycwmp脚本模块分析-概述
文件路径:源码:ext/openwrt/scripts/设备路径:/usr/sbin/easycwmp/usr/share/easycwmp/functions/easycwmp脚本模块的文件说明:源码目录设备目录说明ext/openwrt/scripts/easycwmp.sh/usr/bin/easycwmp1.命令的入参处理 2.与系统接口的定义(uci,log目录)ext/openwrt/scripts/functions/common/common
2020-06-15 18:14:13
2834
6
原创 easycwmp解读(1.1)-基本配置/etc/config/easycwmp
文件路径:源码:ext/openwrt/config/easycwmpd设备路径: /etc/config/easycwmp源码内容# easycwmp uci configurationconfig local option enable '0' #开关-是否启动easycwmpd进程 option interface eth0 #TR069协议报文接收,发送的网卡-一般是WAN口 option port 7547 #本机监听acs Get操作的接口 option ubus_s
2020-06-12 15:33:21
2624
原创 easycwmp解读(1.0)-启动流程/etc/init.d/easycwmpd
文件路径:源码:ext/openwrt/init.d/easycwmpd设备路径 /etc/init.d/easycwmpd源码内容#!/bin/sh /etc/rc.common# Copyright (C) 2012-2014 OpenWrt.orgSTART=90USE_PROCD=1PROG="/usr/sbin/easycwmpd"UCI_SET="/sbin/uci -q ${UCI_CONFIG_DIR:+-c $UCI_CONFIG_DIR} set"UCI_
2020-06-12 15:13:26
1574
原创 android 7.1.2 Jack-admin多用户问题
问题:Communication error with Jack server (77), try ‘jack-diagnose’ or see Jack server log原因:同一台设备上,使用多个用户编译android7时Jack server使用同一端口造成的。方案:更改每个用户下的Jack server端口,重启Jack server进程即可第一步: vi .jack-settings # Server settingsSERVER_HOST=127.0.0.1SERVER_PO
2020-05-12 09:26:31
458
原创 linux 开发资料
中断:https://www.cnblogs.com/ck1020/p/6024330.html关于boot内核加载的过程http://www.ibm.com/developerworks/cn/linux/l-btloader/index.htmlmips内存管理https://blog.csdn.net/phunxm/article/details/9393021/...
2020-01-06 11:20:07
131
原创 android 7.1.2编译问题ninja: error: unknown target '–j' != [-j]
make -j 24 注意字符,不要是中文字符!
2019-10-08 15:29:00
4041
原创 Centos7使用yum安装Nginx
1、添加源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了Centos的源地址。因此可以如下执行命令添加源:sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm2、安装Nginx 通过yum searc...
2019-09-25 16:45:36
146
原创 contos7中javac版本配置问题
centos7中安装了android的便宜环境,刚开始编译android 5 java版本使用的1.7.0版本,后来编译android 7要使用 1.8.0的版本,直接使用 yum update openjdk,发现java 的版本更新了,但是javac的版本却没有更新,使用update-alternatives --config javac更改版本也没有,发现1.8.0的版本,,在网上搜索,发现...
2019-09-20 10:17:06
165
转载 repo命令简介
Repo 命令简介使用 Repo 需遵循的格式如下:repo <COMMAND> <OPTIONS>可选元素显示在方括号 [ ] 中。例如,许多命令会将项目列表用作参数。您可以为项目指定项目列表,作为名称列表或本地源代码目录的路径列表:repo sync [<PROJECT0> <PROJECT1> ... <PROJECTN>...
2019-09-19 11:36:05
1216
转载 andorid系统源码管理工具
要使用 Android 代码,您需要使用 Git(一种开源版本控制系统)和 Repo(一种对 Git 构成补充的 Google 代码库管理工具)。GitGit 旨在处理分布在多个代码库上的大型项目。Android 使用 Git 执行本地操作,例如建立本地分支、提交、对比差异、修改。打造 Android 项目所面临的挑战之一就是确定如何最好地支持外部社区 - 从业余爱好者社区到生产大众消费类设备...
2019-09-19 11:19:02
140
转载 android编译环境-软硬件要求
要求下载和编译 Android 源代码之前,请先确保您的系统符合以下要求。然后,请参阅构建编译环境,查看适用于相应操作系统的安装说明。硬件要求您的开发编译机必须达到或超出以下硬件要求:如果是 Gingerbread (2.3.x) 及更高版本(包括 master 分支),需要使用 64 位环境。如果是较低的版本,则可以在 32 位系统中进行编译。如果是校验代码,至少需要 100GB 可用...
2019-09-19 10:41:57
4000
转载 android编译准备工作
编译准备工作以下关于编译 Android 源代码树的说明适用于所有分支,包括 master。编译命令的基本顺序如下:下载专有二进制加粗样式文件您不能只通过纯源代码来使用 AOSP,还需要运行与硬件相关的其他专有库(例如用于硬件图形加速的专有库)。如需其他资源的下载链接和设备二进制文件,请参阅以下各部分。部分设备会将这些专有二进制文件打包到其 /vendor 分区。下载专有二进制文件...
2019-09-18 17:20:47
222
转载 搭建android编译环境
本部分介绍了如何设置本地工作环境来编译 Android 源文件。您需要使用 Linux 或 Mac OS。目前不支持在 Windows 环境下进行编译。要简要了解整个代码审核和代码更新流程,请参阅(补丁程序的生命周期)待补充。选择分支针对编译环境的某些要求是由您打算编译的源代码的版本决定的。要查看您可以选择的分支的完整列表,请参阅【版本号】。您还可以选择下载并编译最新的源代码(称为 mast...
2019-09-18 17:00:31
535
转载 android源码下载
下载源代码Android 源代码树位于由 Google 托管的 Git 代码库中。Git 代码库中包含 Android 源代码的元数据,其中包括与对源代码进行的更改以及更改日期相关的元数据。本文档介绍了如何下载特定 Android 代码流水线的源代码树。要从特定设备的出厂映像开始,请参阅选择设备版本。安装 RepoRepo 是一款工具,可让您在 Android 环境中更轻松地使用 Git。...
2019-09-18 16:19:24
221
转载 c语言编译预处理和条件编译执行过程的理解
在C语言的程序中可包括各种以符号#开头的编译指令,这些指令称为预处理命令。预处理命令属于C语言编译器,而不是C语言的组成部分。通过预处理命令可扩展C语言程序设计的环境。一.预处理的工作方式1.1.预处理的功能在集成开发环境中,编译,链接是同时完成的。其实,C语言编译器在对源代码编译之前,还需要进一步的处理:预编译。所以,完整的步骤是:预编译 -> 编译 -> 链接预编译的主要...
2019-04-17 11:00:25
898
原创 linux kernel协议栈开发(2)-经过新协议解析后内存泄漏问题
新协议的插入点是ETH_P_ALL static struct packet_type new_packet_type __read_mostly = { .type = cpu_to_be16(ETH_P_ALL), .func = new_procol_rcv, };ETH_P_ALL这个插入点呢,比较常见的就是tcpdump,这个地方所有的报文都会经过,所...
2019-03-11 11:38:07
231
原创 ubuntu 14.4 dhcp server配置问题
ubuntu的dhcp server配置有好多,最近我测试用了两个,安装配置遇到一下问题记录如下:1.isc-dhcp-server安装:sudo apt-get install isc-dhcp-server配置:/etc/dhcp/dhcp.conf# A slightly different configuration for an internal subnet.subnet...
2019-03-11 10:44:31
567
原创 linux kernel协议栈开发-经过新协议解析后重包问题
最近开发了一个新协议,在开发的过程中出现了,网卡收到一个包,协议解析后却给协议栈送了两个skb,导致设备一直重包问题,经过几天的调试才定位道问题。新协议的开发,基本上是添加自己需要的报文头,然后再解析还原原始的报文。这里收包的地方采用:定义新的struct packet_type 结构体,然后插入到内核队列 static struct packet_type new_packet_...
2019-02-20 17:19:59
196
原创 ubuntu 14 server 配置说明
基础安装说明安装ubuntu 14.4 64-bit-server语言采用us English内核降到3.18.80(自制)安装更新IP/iproute4.0.0.安装更新IP/iproute4.0.0安装brctl |apt-get install bridge-utils安装brctl |apt-get install bridge-utils安装telnet安装dhcp se...
2019-02-20 17:02:58
179
原创 Ubuntu 14 x64 修改默认的内核
vi /etc/default/grubGRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.18.80"#GRUB_HIDDEN_TIMEOUT=0GRUB_HIDDEN_TIMEOUT_QUIET=true修改GRUB_DEFAULT=0 为:GRUB_DEFAULT="Advanced options ...
2019-01-24 13:17:12
406
1
原创 使用django创建一个新的应用
在原有的框架里面加入一个新的应用,应用描述如下:名称vpn账号 (myvpn)原始数据端口号(0-65536),密码(字符串len<32)附加数据修改时间,文字描述操作增删查改1.使用django原始函数创建新的应用并配置python manage.py startapp myvpn./myapp/view.py 中编写web显示from ...
2018-12-27 09:28:33
1321
原创 ubuntu服务器配置说明
1.原始unbuntu14.5系统 sudo apt-get update sudo apt-get upgradesudo apt-get dist-upgrade#python3.7相关sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbussudo ...
2018-12-26 10:58:49
254
原创 iperf linux版本二进制文件
使用平台:内核版 linux3.3.8使用方法:1.解压压缩包2.将 libuClibc++.so.0 cp 到 /lib/目录3.执行iperf命令.iperf命令详解:http://man.linuxde.net/iperf命令常用的方法:./iperf -s -i 1TCP模式下打流,本机做服务器,接收数据,刷新周期1s ...
2018-12-20 15:43:49
823
原创 ubuntu python3.5安装 uwsgi出现 plugins/python/uwsgi_python.h:2:20: ......问题
安装 python*.devl;例如:apt-get install python3.5-dev
2018-11-16 15:54:12
1149
1
原创 entables移植问题
最近项目需要支持ebtables,从官网下载源码,交叉编译,然后放在设备上运行,执行 ebtables -L 时出现问题,提示错误:modprobe: could not parse modules.depThe kernel doesn't support the ebtables 'filter' table.。按照提示,应该是kernel模块没有加载导致,lsmod命令查
2016-12-08 16:59:43
2290
android_repo_from_storage-googleapis-com.zip
2019-09-19
Iperf二进制
2017-10-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人