自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 收藏
  • 关注

原创 深入模拟版图工程师基础学习:CMOS工艺解析

FinFET工艺通过其独特的三维结构,提供了比传统平面CMOS晶体管更高的性能和更低的功耗,是现代高性能和低功耗集成电路设计中的重要技术。虽然其制造和设计复杂度较高,但其在高性能计算和移动设备中的应用非常广泛,带来了显著的性能提升和功耗优化。

2024-06-28 16:38:21 1513

原创 主流芯片工艺简单了解

5纳米工艺(5nm):5纳米工艺是7nm工艺的进一步改进,可以实现更高的集成度和更低的功耗。台积电(TSMC,Taiwan Semiconductor Manufacturing Company):台积电是全球最大的半导体代工厂商之一,提供各种制程工艺,包括7纳米、5纳米、3纳米等,供应给客户制造各种芯片,包括处理器、图形芯片、移动芯片等。相反,7纳米工艺表示工艺中的最小特征尺寸为7纳米,但其他部分的尺寸,如金属线宽度、多晶硅宽度等,通常会有不同的规格,以满足不同的设计和制程要求。

2024-02-03 22:17:08 1424

原创 mos管闩锁效应理解学习

集成电路版图中闩锁效应的原理理解及版图解决方法

2022-07-23 13:58:15 2348 1

原创 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 743

原创 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 6822 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 12195 2

原创 P型半导体,N型半导体,PN结原理简述

前置知识:半导体器件是构成各种电子电路的基础。而半导体的器件主要是由半导体材料制成的:如硅和锗。为什么要使用半导体材料作为器件?这就跟半导体的特性相关,需要一些初高中的化学基础:在元素表中,元素周期表左边的元素(带金字旁的)被称为金属,右边的被称为非金属。金属:导电性和导热性好。 非金属:不易导电和导热。硅和锗的电学特性介于金属和非金属之间。在硅和锗的晶体中,每个原子和周围的4个原子以共价键的形式紧密的联系在一起,形成整齐的晶格。那金属元素是怎么导电的?以元素的原子结构示意图来表

2022-03-24 21:32:41 13088

原创 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 1264

原创 mysql操作入门(八)-----多表连接查询(重点)

从一张表中单独查询,称为单表查询,多个表联合起来查询数据,被称为连接查询。当两张表进行连接查询,没有任何条件限制的时候,最终查询结果条数,是两张表条数的乘积,这种现象被称为:笛卡尔积现象(重要)具体使用:已知表一:dept表的dname字段为表二:emp表的ename字段为将两个表的这两个字段dname,ename连接查询:语法:select 表一的字段,表二的字段 from 表一,表二;当两张表的字段进行连接查询的时候,sql语句不加任何的限制时,最终得到的数据条.

2022-03-15 10:19:37 1869

原创 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 2721

原创 mysql操作入门(六)-----分组函数具体使用,group by 使用

分组函数也叫多行处理函数,即多个输入,一个输出分组函数就只有五个:count 计数 sum 求和 avg 平均数 max 最大值 min 最小值分组函数使用的规则:不能直接使用在where函数的子句当中。原因:where的优先级大于分组函数已知emp表的内容为:一.分组函数的具体使用:1.count (*)表示统计总记录条数,不是统计某个字段中数据的个数。 count(字段):表示统计指定字段中不为null的数据总数量。2.求工资sal的总和...

2022-03-14 10:56:02 996

原创 mysql操作入门(五)-----常用数据处理函数及具体用法

数据处理函数也叫做单行处理函数单行处理函数的特点是:一个输入对应一个输出。有单行处理函数那就有多行处理函数,多行处理函数:多个输入对应一个输出。例如输出多个值,计算多个值的总和,输出总和。常见的单行处理函数:举例使用:将员工的名字小写取员工名字的长度:...

2022-03-13 23:44:43 708

原创 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 55874

原创 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 1004

原创 mysql操作入门(二)-----表的基础操作+导入一个表+sql常用指令

数据库的最基本的单元是表,也叫table,其实这个表跟我们平常生活中用的excel表格很像,就是一种表示数据的一种方式,有行有列。为什么在数据库中要用表来存储数据呢?因为表比较直观,任何一张表都有 行和列。行:数据(记录) 列:字段。注意:每个字段都有字段名,数据类型,约束等属性。约束有很多,其中有一个叫做唯一性约束,这种约束添加过后,该字段中的数据不能重复。在操作表之前学习一下如何导入一个数据库文件:需要在网上下载一个数据库练习的文档,后缀为.sql导入语法:source

2022-03-11 23:36:39 966

原创 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 1956

原创 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 687

原创 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 1084

原创 Visual Studio2022安装步骤记录

1.进入下载网页:https://visualstudio.microsoft.com/zh-hans/downloads/下载社区版2.安装3.选择工作负荷主要选红框这三个,其他的按照自己需要安装。4.点击安装5. 安装完毕6.启动等待7.ok啦...

2022-03-07 19:01:49 1308

原创 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 412

原创 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 974

原创 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 8524

原创 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 5097

原创 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 7246

原创 软件测试如何测试淘宝购物车

首先思考一下这个购物车实现了什么样的功能:以下图为例分析测试点过程:1.首先要梳理产品的核心业务流程,也就是明白这是个什么项目,实现了什么业务,以及是怎么实现的。这个步骤一般会参考公司的需求文档,如果产品提供需求文档的同时提供了业务流程图,可以遵循流程图来梳理;如果产品没有提供流程图,就需要测人员根据自己的理解画出业务流程图。2.根据流程进行模块细分,然后针对每个功能模块进行详细的测试点设计和提取。3.针对具体功能,寻找每个输入项和步骤,从以下三个角度来分析测试点 :长度,数据.

2022-03-02 14:38:02 4705

原创 wireshake使用入门学习笔记(过滤信息+三次握手四次挥手分析)

使用步骤分析1.进入页面选择网卡,一般我选择的是无线网卡WLAN,双击进入抓包页面。2. 进入页面就会看到七七八八花花绿绿的捕获的信息,而且跳的特别快。可以点击红色这个按钮停止抓包,蓝色的是开始抓包在编辑-着色规则中可以看到不同的颜色代表什么协议:因为跳的特别快,我们不容易看到自己需要的内容,所以需要使用过滤来得到我们想要的内容。...

2022-03-01 22:29:56 3095

原创 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 809

原创 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 766

原创 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 18727

原创 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 1701

原创 python opencv将多个图放在一个窗口

编程需求:使用python+opencv对图像进行处理,把原图和灰度图放在一起显示方法:使用numpy模块中的水平堆叠或竖直堆叠完成所有图像的堆叠,最后当成一整张图显示。注意:把不同的尺寸(宽和高)的图片或不同的颜色通道在一起来展示,会发生黑屏,所以要么把两张图的高度设置相同,要么宽度相同。这样才能正常显示。举个栗子:只设置两张图高度相同:注意shape()和resize ()宽和高的import cv2import numpy as np#读图img1 = cv2.imread

2022-02-22 19:57:25 5079

原创 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 1032

原创 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 17599

原创 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 12473

原创 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 261

原创 python opencv实现绘制图像的灰度直方图

思路:先把图片转换为灰度图,然后根据灰度值的分布来绘制直方图使用方法:matplotlib库,hist函数,revel()函数hist函数功能:根据数据源和像素级绘制直方图使用方法:hist(数据源,像素级)数据源:一维数组。由于灰度图像是由一个二维数组组成,所以需要使用revel()函数进行转换。像素级:一般是256ravel()使用方法:一维数组=多维数组.ravel()具体实践:将彩色图转换为灰度图,并绘制灰度图的直方图,显示灰度图和直方图#!/usr/bin/env

2022-02-20 23:27:06 14478

原创 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 1502

原创 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 37708 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 9153

原创 pytest参数化parametrize使用方法(实现数据相加)

如果有一批测试用例,具有相同的测试步骤 ,只是测试参数数据不同 。那么自动化测试时,就可以使用pytest.mark.parametrize()传入测试函数,测试时会循环执行这些测试数据,使用参数化好处是把测试数据从用例代码中分离开来,以后增加新的测试用例,只需要修改数据就行。使用方法:@pytest.mark.parametrize(argnames, argvalues)argnames:参数化变量名,字符串,多个参数中间用逗号隔开,参数化变量名要与操作的函数的形参一样。argvalue

2022-02-16 14:36:21 1051

空空如也

空空如也

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

TA关注的人

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