- 博客(78)
- 收藏
- 关注
原创 深入模拟版图工程师基础学习:CMOS工艺解析
FinFET工艺通过其独特的三维结构,提供了比传统平面CMOS晶体管更高的性能和更低的功耗,是现代高性能和低功耗集成电路设计中的重要技术。虽然其制造和设计复杂度较高,但其在高性能计算和移动设备中的应用非常广泛,带来了显著的性能提升和功耗优化。
2024-06-28 16:38:21
2966
原创 主流芯片工艺简单了解
5纳米工艺(5nm):5纳米工艺是7nm工艺的进一步改进,可以实现更高的集成度和更低的功耗。台积电(TSMC,Taiwan Semiconductor Manufacturing Company):台积电是全球最大的半导体代工厂商之一,提供各种制程工艺,包括7纳米、5纳米、3纳米等,供应给客户制造各种芯片,包括处理器、图形芯片、移动芯片等。相反,7纳米工艺表示工艺中的最小特征尺寸为7纳米,但其他部分的尺寸,如金属线宽度、多晶硅宽度等,通常会有不同的规格,以满足不同的设计和制程要求。
2024-02-03 22:17:08
2814
原创 python+opencv 绘制掩膜的直方图
这里使用的掩膜为自定义大小的矩形import cv2import numpy as npimport matplotlib.pyplot as pltimport matplotlib#读取图像img = cv2.imread(r'C:\Users\thorne\PycharmProjects\biyesheji\image\101.jpeg')#处理图像时需转换为RGB图像img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)#设置掩膜格式m
2022-04-25 18:21:18
826
原创 python+opencv 获取图像属性,获取图像感兴趣区域ROI
1.获取图像属性1.1获取图像形状img.shape:灰度图像返回高、宽两个参数,彩色图像返回高、宽、通道数三个参数读取彩色图片:# -*- coding:utf-8 -*-import cv2#读取彩色图片img = cv2.imread(r'C:\Users\thorne\PycharmProjects\biyesheji\image\23.jpeg')#获取图像形状print(img.shape)结果:(493, 876, 3)读取灰度图像的形状:#
2022-04-20 15:09:02
7016
2
原创 python+opencv修改图像指定像素的值
1.修改彩色图的某个像素值# -*- coding:utf-8 -*-import cv2#读取图片,注意imread是以BRG格式读取图像的img = cv2.imread(r'C:\Users\thorne\PycharmProjects\biyesheji\image\23.jpeg', cv2.IMREAD_UNCHANGED)#获得指定位置的像素值test = img[88,142]print (test)#修改像素值img[88,142] = [255, 255, 255
2022-04-20 14:13:21
12575
2
原创 P型半导体,N型半导体,PN结原理简述
前置知识:半导体器件是构成各种电子电路的基础。而半导体的器件主要是由半导体材料制成的:如硅和锗。为什么要使用半导体材料作为器件?这就跟半导体的特性相关,需要一些初高中的化学基础:在元素表中,元素周期表左边的元素(带金字旁的)被称为金属,右边的被称为非金属。金属:导电性和导热性好。 非金属:不易导电和导热。硅和锗的电学特性介于金属和非金属之间。在硅和锗的晶体中,每个原子和周围的4个原子以共价键的形式紧密的联系在一起,形成整齐的晶格。那金属元素是怎么导电的?以元素的原子结构示意图来表
2022-03-24 21:32:41
16539
1
原创 mysql操作入门(九)-----三张表连接实战
已知三张表的内容为连接语法: select ... from a join b on a和b的连接条件 join c on a和c的连接条件 right join d on a和d的连接条件(d为第四个表,具体实践只有三个表)具体实践:找出每个员工的部门名称以及工资等级,要求显示员工名、部门名、薪资、薪资等级?...
2022-03-15 10:50:26
1331
原创 mysql操作入门(八)-----多表连接查询(重点)
从一张表中单独查询,称为单表查询,多个表联合起来查询数据,被称为连接查询。当两张表进行连接查询,没有任何条件限制的时候,最终查询结果条数,是两张表条数的乘积,这种现象被称为:笛卡尔积现象(重要)具体使用:已知表一:dept表的dname字段为表二:emp表的ename字段为将两个表的这两个字段dname,ename连接查询:语法:select 表一的字段,表二的字段 from 表一,表二;当两张表的字段进行连接查询的时候,sql语句不加任何的限制时,最终得到的数据条.
2022-03-15 10:19:37
1929
原创 mysql操作入门(七)-----having的使用
sql语句的书写顺序:select --> from --> where --> group by --> having --> order by -->sql语句的执行顺序:from --> where --> group by --> having --> select --> order by -->从某张表中查询数据, 先经过where条件筛选出有价值的数据。 对这些有价值的数据进行分组。 分组之后可以使用havi
2022-03-14 14:35:10
2839
原创 mysql操作入门(六)-----分组函数具体使用,group by 使用
分组函数也叫多行处理函数,即多个输入,一个输出分组函数就只有五个:count 计数 sum 求和 avg 平均数 max 最大值 min 最小值分组函数使用的规则:不能直接使用在where函数的子句当中。原因:where的优先级大于分组函数已知emp表的内容为:一.分组函数的具体使用:1.count (*)表示统计总记录条数,不是统计某个字段中数据的个数。 count(字段):表示统计指定字段中不为null的数据总数量。2.求工资sal的总和...
2022-03-14 10:56:02
1073
原创 mysql操作入门(五)-----常用数据处理函数及具体用法
数据处理函数也叫做单行处理函数单行处理函数的特点是:一个输入对应一个输出。有单行处理函数那就有多行处理函数,多行处理函数:多个输入对应一个输出。例如输出多个值,计算多个值的总和,输出总和。常见的单行处理函数:举例使用:将员工的名字小写取员工名字的长度:...
2022-03-13 23:44:43
790
原创 mysql操作入门(四)-----数据排序(升序、降序、多字段排序)
已知emp表的内容为1.升序排序语法:select 字段名1,字段名2,字段名3 from 表名 (where 条件)order by (字段);举例:将工资进行升序排序也可以升序排列字符串,顺序是按照第一个字母,从a-z排序:order by 的默认排序是升序排序,也可以在order by(字段)后加上asc表示升序,效果是跟默认一样的。2.降序数据排列语法:select 字段名1,字段名2,字段名3 from 表名 (where 条件)order by (
2022-03-13 17:43:38
57878
原创 mysql操作入门(三)-----简单查询语句(基础查询+条件查询+模糊查询)
1.查询一个表内的字段(列)数据语法:select 字段名1,字段名2,字段名3 from 表名; 举例使用:已知dept表的内容为:查询loc字段的内容:注意:sql语句不区分大小写给这个查询后的字段(LOC)重新命名:语法:select 字段名1 as (rename) ,字段名2 as (rename) from 表名; 举例使用:其中:as重命名win8以上可以直接改中文。我的电脑就可以直接改,如果不行的话就加单引号。as关键字可以省略。...
2022-03-13 17:00:42
1100
原创 mysql操作入门(二)-----表的基础操作+导入一个表+sql常用指令
数据库的最基本的单元是表,也叫table,其实这个表跟我们平常生活中用的excel表格很像,就是一种表示数据的一种方式,有行有列。为什么在数据库中要用表来存储数据呢?因为表比较直观,任何一张表都有 行和列。行:数据(记录) 列:字段。注意:每个字段都有字段名,数据类型,约束等属性。约束有很多,其中有一个叫做唯一性约束,这种约束添加过后,该字段中的数据不能重复。在操作表之前学习一下如何导入一个数据库文件:需要在网上下载一个数据库练习的文档,后缀为.sql导入语法:source
2022-03-11 23:36:39
1017
原创 mysql操作入门(一)-----启动/关闭mysql服务、登录/退出mysql,显示/使用/创建/删除数据库
1.查看mysql服务是否启动因为启动了才能使用mysql,查看路径:任务管理器-服务-MYSQL80当操作系统启动时,mysql是默认启动的,可以通过上图选择mysql80右键,找到属性,不需要自动启动的时候就设置为手动。也可以用cmd命令的方式来打开和关闭mysql命令,关闭和打开方法如下:net stop mysqlnet start mysql注意:cmd窗口最好使用管理员身份打开2.登录和退出mysql使用本地登录命令:Mysql -uroot -p密.
2022-03-11 22:35:08
2124
原创 mysql的卸载方法(直接使用安装程序卸载)
1.找到下载时的安装程序2.双击,出现下面的页面,点击remove3.选中mysql,next4.点击next5.点击execute,会逐个卸载6.卸载完成7.以上操作完成后,检查C盘的Program Files(x86)内是否还有MYSQL这个目录,如果有就删除。(我的步骤是没有的)8.查看c盘的隐藏目录:programdata,查看这里面是否还有MYSQL这个目录,如果有就删除。(我的步骤是没有的)9.打开控制面板,检查是否有mysql...
2022-03-11 21:06:41
741
原创 c++数组基础学习笔记(声明+初始化+二维数组初始化)
1.数组的声明声明一个数组,需要指定元素的类型和元素的数量。类型可以是任意有效的C++数据类型,元素数量必须大于1。数据类型 数组名[元素数量];如声明一个类型为int的包含10个元素的数组n,声明语句是: int n[10];2.初始化数组指定数组元素个数和元素内容int n[5] = {1,2,3,4,5};初始化时也可以省略n[]括号里面的元素个数值,省略后数组的大小则为初始化时元素的个数。#include <iostream>using n
2022-03-08 16:20:43
1149
原创 Visual Studio2022安装步骤记录
1.进入下载网页:https://visualstudio.microsoft.com/zh-hans/downloads/下载社区版2.安装3.选择工作负荷主要选红框这三个,其他的按照自己需要安装。4.点击安装5. 安装完毕6.启动等待7.ok啦...
2022-03-07 19:01:49
1364
原创 python字符串常用操作
1.find()查找指定元素是否在字符串中,返回查找到的元素的第一个位置索引。若没找到,返回-1str='hello world nihao ya'print(str.find('o'))42.startswith()判断字符串以某个字符串开头,返回boolean类型:str='hello world nihao ya'print(str.startswith('h'))True3.endswith()判断字符串以某个字符串结尾,返回boolean类型:
2022-03-07 12:38:59
502
原创 python列表基础操作(增删改查)
列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。创建列表:有值的列表:值可以是数字,浮点数,字符串,复数,布尔值,当然元素还可以是列表,元组,字典。但这里只讲对数值类型进行操作。#空列表a=[]#有值的列表:值可以是数字,浮点数,字符串,复数,布尔值b=[1,2,3.3,1.23e-4+5.67e+89j.real,'HELLO',True,False]#列表嵌套列表b_1=[1,2,[3,4],['hello','world']]print(a,b,b_1)
2022-03-07 10:33:09
1060
原创 python opencv彩色图像自适应直方图均衡化
import numpy as npimport cv2 as cv# 彩色图像进行自适应直方图均衡化def hisEqulColor(img): ycrcb = cv.cvtColor(img, cv.COLOR_BGR2YCR_CB) channels = cv.split(ycrcb) clahe = cv.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8)) clahe.apply(channels[0], chan.
2022-03-04 22:33:17
9040
1
原创 python+numpy .min()获取每列每行最小值
import numpy as np#定义一个多维数组a=np.array([[1,2,3,4],[100,0,6,7],[10,20,30,40]])#获得整个数组的最小值print(a.min())#获得每列最小值,并汇合在一个数组中print(a.min(0))#获得每行最小值,并汇合在一个数组中print(a.min(-1))0[1 0 3 4][ 1 0 10]...
2022-03-04 14:38:53
5284
原创 python opencv分离,合并彩色图像三通道
通道分离分离方法有两个:opencv自带的分离方法split() ; 自己定义函数获取子矩阵1.opencv自带分离三通道的函数split(),返回值是对应通道的灰度图import cv2img = cv2.imread(r'C:\Users\thorne\PycharmProjects\biyesheji\image\19.jpeg')b, g, r = cv2.split(img)#蓝色cv2.imshow("Blue 1", b)cv2.waitKey(0)#绿色cv2.
2022-03-03 23:01:23
7541
原创 软件测试如何测试淘宝购物车
首先思考一下这个购物车实现了什么样的功能:以下图为例分析测试点过程:1.首先要梳理产品的核心业务流程,也就是明白这是个什么项目,实现了什么业务,以及是怎么实现的。这个步骤一般会参考公司的需求文档,如果产品提供需求文档的同时提供了业务流程图,可以遵循流程图来梳理;如果产品没有提供流程图,就需要测人员根据自己的理解画出业务流程图。2.根据流程进行模块细分,然后针对每个功能模块进行详细的测试点设计和提取。3.针对具体功能,寻找每个输入项和步骤,从以下三个角度来分析测试点 :长度,数据.
2022-03-02 14:38:02
4900
原创 wireshake使用入门学习笔记(过滤信息+三次握手四次挥手分析)
使用步骤分析1.进入页面选择网卡,一般我选择的是无线网卡WLAN,双击进入抓包页面。2. 进入页面就会看到七七八八花花绿绿的捕获的信息,而且跳的特别快。可以点击红色这个按钮停止抓包,蓝色的是开始抓包在编辑-着色规则中可以看到不同的颜色代表什么协议:因为跳的特别快,我们不容易看到自己需要的内容,所以需要使用过滤来得到我们想要的内容。...
2022-03-01 22:29:56
3282
原创 gitlab常用命令——将本地改动提交到远程分支上
将本地的改动添加到远程连接的分支上:步骤1:查看本地修改了的文件git status步骤2:从远程拉取最新修改的代码 git pull --rebase步骤3:将本地的改动的文件添加到暂存区git add 文件路径例如 git add tests/1.py步骤4:对上传的文件进行评论(可有可无)git commit -m "xxx"#xxx为你要评论的内容步骤5:将暂存区的文件提交到远程分支上git push...
2022-02-25 11:01:26
903
原创 python类的继承和多态 ——简单学习与了解
1.继承效果:子类获得父类的全部功能。使用方法:在定义类的括号中(object),object表示该类是从哪个类继承下来的,在object中填入需要继承的类(父类)的名字,就可以继承父类的全部功能了。注意:如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。具体实践:class Animal(object): def run(self): print('Animals is running...')class Dog(Animal):
2022-02-24 16:10:03
815
原创 python requests库的get()方法使用
requests.get():这个方法是我们平时最常用构造的方法之一最通常的方法是通过r=request.get(url)构造一个向服务器请求资源的url对象。这个对象是Request库内部生成的。r返回的是一个包含服务器资源的Response对象,包含了从服务器返回的所有的相关资源。r=requests.get(url,params,**kwargs)参数解释:url: 需要爬取的网站地址。 params: url中的额外参数,字典或者字节流格式,是可选参数。 **kwargs :
2022-02-23 15:29:12
19735
原创 python里写中文出现 “SyntaxError: Non-ASCII character... but no encoding declared”解决方法
解决方法:在代码的最上面添加# -*- coding: utf-8 -*-这句话是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。补充:一般在上面我还会加一句#!/usr/bin/env python这句话是为了防止用户并不是将python装在默认的/usr/bin路径里,当系统看到这行代码时,会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。...
2022-02-23 14:41:12
1834
原创 python opencv将多个图放在一个窗口
编程需求:使用python+opencv对图像进行处理,把原图和灰度图放在一起显示方法:使用numpy模块中的水平堆叠或竖直堆叠完成所有图像的堆叠,最后当成一整张图显示。注意:把不同的尺寸(宽和高)的图片或不同的颜色通道在一起来展示,会发生黑屏,所以要么把两张图的高度设置相同,要么宽度相同。这样才能正常显示。举个栗子:只设置两张图高度相同:注意shape()和resize ()宽和高的import cv2import numpy as np#读图img1 = cv2.imread
2022-02-22 19:57:25
5278
原创 python format()用法
fotmat作为Python的的格式字符串函数,主要通过字符串中的花括号{},来识别和替换字段,从而完成字符串的格式化。1.填充1.1通过位置来填充因为是函数,那么format中传入的实参就需要与{}的位置一一对应。# -*- coding: utf-8 -*-person = "{} is a {},his age is {}".format('jack', 'Boy','20')print(person)结果jack is a Boy,his age is 201
2022-02-21 16:30:31
1165
原创 python 判断字典是否为空
dict = {'name':'jack'}dict_2={}if dict: print 'pass'else:print 'false'if dict_2: print 'pass'else:print 'false'passfalse判断列表和元组方法同理:a=[]b=()if a: print 'pass'else:print 'false'if b: print 'pass'else:print 'false'fal.
2022-02-21 16:00:24
17882
原创 python判断字符串是否为空
a = '123'if not a=='': print 'pass'if a!='': print 'pass1'if len(a.strip())>0: print 'pass2'if a.strip(): print 'pass3'passpass1pass2pass3但是有个问题:当字符串内容有空格,为‘ ’的时候,使用!='‘判断就会显示字符串不为空,因为这时会把空格算成字符串的内容。a = ' 'if n...
2022-02-21 15:52:28
12600
原创 Python判断一个字符串是否包含另一个字符串(判断字符串中是否包含需要的端口号)
判断端口与预期的相符合,这个时候就需要把端口变成一个字符串才能判断a='80'b='443'list=['http://1.1.1.1:80','https://1.1.1.2:443']if a in list[0] and b in list[1]: print 'pass'pass
2022-02-21 11:27:16
294
原创 python opencv实现绘制图像的灰度直方图
思路:先把图片转换为灰度图,然后根据灰度值的分布来绘制直方图使用方法:matplotlib库,hist函数,revel()函数hist函数功能:根据数据源和像素级绘制直方图使用方法:hist(数据源,像素级)数据源:一维数组。由于灰度图像是由一个二维数组组成,所以需要使用revel()函数进行转换。像素级:一般是256ravel()使用方法:一维数组=多维数组.ravel()具体实践:将彩色图转换为灰度图,并绘制灰度图的直方图,显示灰度图和直方图#!/usr/bin/env
2022-02-20 23:27:06
15525
原创 selenium打开firefox无痕模式
之前以为firefox的无痕模式的参数与chrome的一样,结果刚刚查询才知道两个浏览器的无痕模式的参数不一样!Chrome的无痕模式参数是 ‘--incognitio’firefox 的无痕模式参数是 ‘-private’使用举例:使用firefox打开百度浏览器from selenium import webdriverfrom selenium.webdriver.firefox.options import Optionsoption=Options()option.add
2022-02-18 16:33:32
1664
原创 selenium的三种等待方式(显示等待,隐式等待,强制等待)简单了解与总结
1.强制等待(无条件等待)使用方法:time.sleep(delay)delay的单位为秒,delay设置多少秒页面就会等待多少秒(死等),这个方法很容易让线程挂掉,使程序抛异常,所以要慎用此方法。使用举例:打开百度,强制等待5秒#导入强制等待模块import timefrom selenium import webdriverwd = webdriver.Chrome()wd.get('https://www.baidu.com')#强制等待5秒time.sleep(5)
2022-02-18 11:13:56
40114
5
原创 linux命令——curl常用命令使用方法简单了解
curl是什么?全称CommandLine URL 或 CommandLine Uniform Resource Locator,在命令行方式下工作,利用URL的语法进行数据的传输或者文件的传输。是一个用来与服务器之间传输数据的工具。功能:curl提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传等。以下是常用的curl命令:1.curl url (返回该网址的html信息)curl www.baidu.com
2022-02-17 14:50:03
9342
原创 pytest参数化parametrize使用方法(实现数据相加)
如果有一批测试用例,具有相同的测试步骤 ,只是测试参数数据不同 。那么自动化测试时,就可以使用pytest.mark.parametrize()传入测试函数,测试时会循环执行这些测试数据,使用参数化好处是把测试数据从用例代码中分离开来,以后增加新的测试用例,只需要修改数据就行。使用方法:@pytest.mark.parametrize(argnames, argvalues)argnames:参数化变量名,字符串,多个参数中间用逗号隔开,参数化变量名要与操作的函数的形参一样。argvalue
2022-02-16 14:36:21
1113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人