- 博客(295)
- 资源 (2)
- 收藏
- 关注
原创 计算机系统(五)优化程序性能
写程序最主要的目标就是使它在所有可能的情况下都正确工作。一个运行得很快但是给出错误结果的程序没有任何用处。程序员必须写出清晰简洁的代码,这样做不仅仅是为了程序员能够看懂代码,也是为了在检查代码和今后需要修改代码时,其他人能够读懂和理解代码。另一方面,在很多情况下,让程序运行得快也是一个重要的考虑因素。如果一个程序要实时地处理视频帧或者网络包,一个运行得很慢的程序就不能提供所需的功能。当一个计算任务的计算量非常大,需要执行数日或者数周,那么哪怕只让它运行得快20%也会产生重大的影响。编写高效程序需要几类活
2021-09-30 16:47:34
459
原创 计算机系统(四)处理器体系结构
现代微处理器可以称得上是人类创造的最复杂的系统之一。一块手指甲大小的硅片上,可以容纳一个完整的高性能处理器、大的高速缓存,以及用来连接到外部设备的逻辑电路。到目前为止,我们看到的计算机系统只限于机器语言程序级。我们知道处理器必须执行一系列指令,每条指令执行某个简单操作,例如两个数相加。指令被编码为由一个或多个字节序列组成的二进制格式。一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构(Instruction-Set Architecture,ISA)。一个程序编译成在一种机器上运行,就不能在另一
2021-09-27 17:48:28
339
原创 计算机系统(三)程序的机器级表示
计算机执行机器代码,用字节序列编码低级的操作,包括处理数据、管理存储器、读写存储设备上的数据,以及利用网络通信。编译器基于编程语言的原则、目标机器的指令集和操作系统遵循的原则,经过一系列的阶段产生机器代码。GCC C语言编译器以汇编代码的形式产生输出,汇编代码是机器代码的文本表示,给出程序中的每一条指令。然后GCC调用汇编器和链接器,从而根据汇编代码生成可执行的机器代码。当我们用高级语言编程的时候,机器屏蔽了程序的细节,即机器级的实现。与此相反,当用汇编代码编程的时候,程序员必须指定程序的低级指令以执行计
2021-09-26 17:38:59
519
原创 计算机系统(二)信息的表示和处理
现代计算机存储和处理的信息以二值信号表示。这些微不足道的二进制数字,或称为位(bit),奠定了数字革命的基础。对于有10个手指的人类来说,使用十进制表示法是很自然的事情,但是当构造存储和处理信息的机器时,二进制的值工作得更好。二值信号能够很容易地表示、存储和传输,例如,可以表示为穿孔卡片上有洞或无洞、导线上的高电压或低电压,或者顺时针或逆时针的磁场。对二值信号进行存储和执行计算的电子电路非常简单和可靠,制造商能够在一个单独的硅片上集成数百万甚至数十亿个这样的电路。单个的位不是非常有用。然而,当把位组合在一
2021-09-24 17:32:59
243
原创 计算机系统(一)计算机系统漫游
计算机系统是由硬件和系统软件组成的,他们共同工作来运行应用程序。虽然系统的具体实现方式随着时间不断变化,但在系统内在的概念却没有改变。所有计算机系统都有相似的硬件和软件组件,他们执行着相似的功能。一些程序员希望深入了解这些组件是如何工作的,以及这些组件是如何影响程序的正确性和性能的,以此来提高自身的技能。一、信息就是位+上下文hello程序的生命周期是从一个源程序(或者源文件)开始的,即程序员利用编辑器创建并保存的文本文件,文件名是hello.c。源程序实际上就是一个由值0和1组成的位(bit)序列,8
2021-09-22 18:47:05
201
原创 TCP/IP(九)网络安全
一、TCP/IP与网络安全起初,TCP/IP只用于一个相对封闭的环境,之后才发展为并无太多限制、可以从远程访问更多资源的形式。因此,“安全”这个概念并没有引起人们太多的关注。然而,随着互联网的日益普及,发生了很多非法访问、恶意攻击等问题,着实影响了企业和个人利益。由此,网络安全逐渐成为人们不可忽视一个重要内容。互联网向人们提供了很多便利的服务。为了让人们能够更好、更安全的利用互联网,只有牺牲一些便利性来确保网络的安全。因此,“便利性”和“安全性”作为两个对立的特性兼容并存,产生了很多新的技术。随着恶意使
2021-08-21 11:02:46
1226
原创 TCP/IP(八)应用协议
一、应用层协议概要IP协议、TCP协议以及UDP协议是通信最基本的部分,他们属于OSI参考模型中的下半部分。应用协议的定义利用网络的应用程序有很多,包括Web浏览器、电子邮件、远程登录、文件传输、网络管理等。能够让这些应用进行特定通信处理的正是应用协议。TCP和IP等下层协议是不依赖于上层应用类型、适用性非常广的协议。而应用协议则是为了实现某种应用而设计和制造额度协议。例如,远程登录等应用经常使用的TELNET协议,它的支持基于文字的命令与应答,通过命令可以执行各种各样的其他应用。应用协议与协议
2021-08-19 19:12:00
882
原创 TCP/IP(七)路由协议
一、路由控制的定义1.1.IP地址与路由控制互联网是由路由器连接的网络组合而成的。为了能让数据包正确的到达目标主机,路由器必须在途中进行正确地转发。这种向“正确的方向”转发数据所进行的处理就叫做路由控制或路由。路由器根据路由控制表(Routing Table)转发数据包。它根据所收到的数据包中目标主机的IP地址与路由控制表的比较得出下一个应该接收的路由器。因此,这个过程中路由控制表的记录一定要正确无误。但凡出现错误,数据包就有可能无法到达目标主机。1.2.静态路由与动态路由路由控制分静态和动态两种
2021-08-18 17:38:14
995
原创 TCP/IP(六)TCP与UDP
一、传输层的作用TCP/IP中有两个具有代表性的传输层协议,它们分别是TCP和UDP。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。总之,根据通信的具体特征,选择合适的传输层协议是非常重要的。1.1.传输层定义IP首部中有一个协议字段,用来标识网络层(IP)的上一层所采用的是哪一层传输层协议。根据这个字段的协议号,就可以识别IP传输的数据部分究竟是TCP的内容,还是UDP的内容。同样,传输层的TCP和UDP,为了识别自己所传输的数据部分究竟应该发给哪个应用,也设定了
2021-08-17 17:39:37
422
原创 TCP/IP(五)IP协议相关技术
一、仅凭IP无法完成通信二、DNS2.1.IP地址不便记忆2.2.DNS的产生2.3.域名的构成2.4.DNS查询2.5.DNS如同互联网中的分布式数据库三、ARP3.1.ARP概要3.2.ARP的工作机制3.3.IP地址和MAC地址缺一不可3.4.RAPP3.5.代理ARP四、ICMP4.1.辅助IP的ICMP4.2.主要的ICMP消息4.3.其他ICMP消息4.4.ICMPv6五、DHCP5.1.DHCP实现即插即用5.2.DHCP的工作机制5.3.DHCP中继
2021-08-17 17:39:15
273
原创 TCP/IP(四)IP协议
一、IP即网际协议TCP/IP的心脏是互联网层。这一层主要由IP(Internet Protocol)和ICMP(Internet Control Message Protocol)两个协议组成。1.1.IP相当于OSI参考模型的第3层IP(IPv4、IPv6)相当于OSI参考模型中的第3层——网络层。网络层的主要作用是“实现终端节点之间的通信”。这种终端节点之间的通信也叫“点对点(end-to-end)通信”。从前面的章节可知,网络的下一层——数据链路层的主要作用是在互联同一种数据链路的节点之间
2021-08-16 19:22:19
769
1
原创 TCP/IP(三)数据链路
一、数据链路的作用数据链路,指OSI参考模型中的数据链路层,有时也指以太网、无线局域网等通信手段。TCP/IP中对于OSI参考模型的数据链路层及以下部分(物理层)未作定义。因为TCP/IP以这两层的功能是透明的为前提。然而,数据链路的知识对于深入理解TCP/IP与网络起着至关重要的作用。数据链路层的协议定义了通过通信媒介互连的设备之间传输的规范。通信媒介包括双绞线电缆、同轴电缆、光纤、电波以及红外线等介质。此外,各个设备之间有时也会通过交换机、网桥、中继器等中转数据。实际上,各个设备之间再数据传输时
2021-08-11 20:17:51
555
1
原创 TCP/IP(二)基础知识
一、TCP/IP出现的背景及其历史1.1.从军用技术的应用谈起20世纪60年代,很多大学和科研机构都开始着力于新的通信技术。其中有一家以美国国防部为中心的组织也展开了类似的研究。DoD认为研发新的通信技术对于国防军事有着举足轻重的作用。该组织希望在通信传输的过程中,即使遭到了敌方的攻击和破坏,也可以经过迂回线路实现最终通信,保证通信不中断。倘若在中心位置的中央节点遇到攻击,就会影响整个网络的通信传输。然而,网络呈现出由众多迂回线路组成的分布式通信,使其即便在某一处受到通信攻击,也会在迂回线路的极限范围
2021-08-10 20:12:29
234
原创 TCP/IP(一)网络基础知识
一、计算机网络出现的背景1.1.计算机的普及与多样化计算机正对我们的社会与生活产生着不可估量的影响。现如今,计算机已应用于各种各样的领域,以至于有人说“20世纪最伟大的发明就是计算机”。计算机不仅被广泛引入到办公室、工厂、学校、教育机关以及实验室等场所,就连在家里使用个人电脑也已是普遍现象。同时,笔记本电脑、平板电脑、手机终端(智能手机)等便携设备的持有人群也日益增多,甚至外观上一点都不像计算机的家用电器、音乐播放器、办公电器、汽车等设备中,一般也会内置一个小型的芯片,使这些设备具有相应的计算机控制功能
2021-08-09 18:38:14
532
1
原创 python爬虫技术(五)网络库requests
一、基本用法1.1.requests的HelloWorld学习任何一门技术,都会用一个超级简单的案例起步,这个案例统称为HelloWorld。学习requests我们也沿用这个习惯。在开始使用requests之前,需要使用下面的命令安装requests.pip install requestsurlib库中的urlopen方法实际上是以GET方式请求网页,而requests中对应的方法是get,该方法可以接受一个URL,然后又会返回一个对象,通过get方法的返回值,可以获取HTTP响应数据。1
2021-08-02 00:09:55
167
原创 python爬虫技术(四)网络库urllib3
urlib3是另一个Python网络库,功能要比urlib更强大。一、urlib3简介在python程序中,使用频率最高的网络模块莫过于urlib,因为urlib是Python内置的网络模块,不需要单独安装,使用起来非常方便。但随着互联网的不断发展,urlib里的功能明显已经不够用了,所以有了后来的urlib2和urlib3。二、urlib3模块三、发送HTTP GET请求四、发送HTTP POST请求五、HTTP请求头六、HTTP响应头七、上传文件八、超时由于HTTP底层是基于Sock
2021-08-01 19:41:52
424
原创 python爬虫技术(三)网络库urllib
一、rullib简介urlib是python3中内置的HTTP请求库,不需要单独安装。二、发送请求与获取响应2.1.用urlopen函数发送HTTP GET请求
2021-07-20 00:03:39
204
原创 python爬虫技术(二)爬虫基础
一、HTTP基础1.1.URI和URLURI的英文全称是Uniform Resource Identifier,中文的意思是“统一资源标识符”。URL是URI的子集,也就是说,每个URL都是URI,但并不是所有的URI都是URL。URI除了包括URL外,还是URN(Universal Resource Name,统一资源名称)。URN只命名资源而不指定如何获取资源。1.2.超文本超文本英文名字是hypertext。在Web应用中,超文本主要是指HTML代码。我们在浏览器中看到的内容就是浏览器解析
2021-07-17 23:48:42
138
原创 python爬虫技术(一)
开发环境配置(1)安装python标准环境;(2)安装Anaconda Python环境;(3)设置PATH环境变量;(4)安装PyCharm;(5)配置PyCharm。
2021-05-25 22:35:39
147
原创 PyTorch实战(一)
深度学习与pytorch人工智能(artificial intelligence,AI)机器学习(machine learning)深度学习(deep learning)一、机器学习在人工智能领域,机器学习 是实现人工智能的一个分支,也是人工智能领域发展最快的一个分支。简单地说,机器学习是计算机程序如何随着经验的积累而自动提高性能,使系统自我完善的过程。机器学习在近30多年已发展成为一门多领域交叉的学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等,而且其应用范围非常广泛,包含自然语言处理
2021-03-03 22:50:07
307
1
原创 C++实例(十四)图像控制
一、图像缩放图片缩放图片的平滑缩放图像固定比例缩放屏幕放大器图像缩放与保存二、图像剪切图片剪切图像的剪切保留椭圆下的图像内容去除椭圆下的图片内容照片版式处理三、图像转动图像水平翻转图像旋转图像垂直翻转四、图像融合在图像上绘制线条在图像上绘制网络图像的合成水印效果批量添加水印如何在图片上平滑移动文字五、图像查看图片自动预览程序图片批量浏览成组浏览图片在视图中拖动图片可随鼠标移动的图形浏览大幅BMP图片随图像大小变换的图像浏览器管理计算机内图片文件的
2021-02-09 14:12:50
454
原创 C++实例(十三)图像特效
一、图像滤镜图像锐化图像柔化图像反色图像灰度图像雾化二、图像绘制在对话框中绘制图像绘制对话框背景在视图中绘制图像指定区域绘制图像图像纹理填充矩形三、图像色彩转换显示3D灰色图像改变图像饱和度改变图像对比度四、图像边缘提取水墨边缘提取图片中的对象图像浮雕效果五、字体特效空心字渐变颜色的空心字贴图字获取路径点信息显示Word艺术字旋转的文字可任意旋转的文字...
2021-02-09 13:53:35
803
原创 C++实例(十二)图形绘制
一、特殊曲线绘制蜗牛线绘制贝塞尔曲线拖动绘制曲线绘制正弦曲线绘制立体模型交叉线条绘制尼哥米德蚌线艺术图案万花筒绘制抛物线等电位面图沙丘图案绘制艺术图案立体三棱锥二、图形基础创建不同的画刷指定颜色填充矩形区域模拟时钟绘制网格画图程序如何绘制渐变颜色绘制不规则图形数字验证电子名片绘制圆形绘制字体边框图像居中绘制五角星绘制印章在菱形内绘制图像绘制简单饼型图绘制圆弧绘制自定义线条彩虹文字三、分形模拟自然景物三叶草...
2021-02-08 23:02:39
4344
原创 WPF实例(六)WPF资源、样式和模板——项目美化
一、美化信息修改界面的TextBlock控件1.1.资源资源是指那些项目中可以和C#代码分离的固定不变的信息。早在WPF出现之前windows应用程序就已经能够携带资源了。实际上就是把一些应用程序必须使用的资源与应用程序自身打包在一起,这样资源就不会意外丢失了,代价是应用程序体积会变大。资源文件是指不能直接执行的文件。各种编程语言的编译器会把这些文件编译进目标文件(最终的.exe或.dll文件),资源文件在目标文件里以二进制数据的形式存在,形成目标文件的资源段。而在WPF中资源文件以哪种形式保存,则由其
2021-01-24 23:51:24
856
原创 WPF实例(五)WPF绑定-注册信息入库
一、创建一个简单的Binding的简单程序1.1.数据绑定概述数据绑定为应用程序提供了一种简单、一致的数据表示和交互方法。元素能够以公共语言运行时(CLR)对象和XAML形式绑定到来自各种数据源的数据。ContentControl(如Button)和(ItemsControl)(如ListBox和ListView)具有内置功能,使单个数据项或数据项集合可以进行灵活的样式设置,可以在数据之上生成排序、筛选和分组视图。WPF中的数据绑定功能与传统模型相比具有一些优势,包括本质上支持数据绑定的各种属性、灵活
2021-01-24 22:24:27
231
原创 python+openCV图像处理(三十)
import cv2 as cvimport numpy as npfrom PIL import Imageimport pytesseract as tessdef recognize_text(): gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY) ret, open_out = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU) cv.imshow("
2021-01-23 14:32:36
120
原创 python+openCV图像处理(二十九)
import cv2 as cvimport numpy as npdef face_detect_demo(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) face_detector = cv.CascadeClassifier("1.xml") #face_detector = cv.CascadeClassifier("2.xml") #下载地址:https://github.com/opencv/open
2021-01-23 14:31:13
120
1
原创 python+openCV图像处理(二十八)分水岭
import cv2 as cvimport numpy as npdef watershed_demo(): # remove noise if any 去噪 #print(src.shape) blurred = cv.pyrMeanShiftFiltering(src, 10, 100) # gray\binary image 灰度、二值化 gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY) ret, bi
2021-01-23 14:29:48
118
原创 python+openCV图像处理(二十七)
import cv2 as cvimport numpy as npdef tophat_demo(image):#顶帽=原图-开操作(腐蚀+膨胀) gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) kernel = cv.getStructuringElement(cv.MORPH_RECT, (15, 15)) dst = cv.morphologyEx(gray, cv.MORPH_TOPHAT, kernel) #增加亮
2021-01-23 14:28:50
105
原创 python+openCV图像处理(二十六)开运算与闭运算
import cv2 as cvimport numpy as npdef open_demo(image):#开操作=腐蚀+膨胀 去外边白点 print(image.shape) gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU) cv.imshow("binary", bina
2021-01-23 14:27:49
656
原创 python+openCV图像处理(二十五)形态学处理
import cv2 as cvimport numpy as npdef erode_demo(image):#腐蚀 #print(image.shape) gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU) cv.imshow("binary", binary)
2021-01-23 14:26:00
118
原创 python+openCV图像处理(二十四)对象检测
import cv2 as cvimport numpy as npdef measure_object(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU) print("threshold value : %s"%ret) cv.imshow("binary
2021-01-23 14:24:34
219
原创 python+openCV图像处理(二十三)轮廓检测
import cv2 as cvimport numpy as npdef edge_demo(image): blurred = cv.GaussianBlur(image, (3, 3), 0) gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY) edge_output = cv.Canny(gray, 30, 100) cv.imshow("Canny Edge", edge_output) return edge
2021-01-23 14:22:55
221
原创 python+openCV图像处理(二十二)圆检测
import cv2 as cvimport numpy as npdef detect_circles_demo(image): dst = cv.pyrMeanShiftFiltering(image, 10, 100) cimage = cv.cvtColor(dst, cv.COLOR_BGR2GRAY) circles = cv.HoughCircles(cimage, cv.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, m
2021-01-23 14:20:38
359
原创 python+openCV图像处理(二十一)直线检测
import cv2 as cvimport numpy as npdef line_detection(image): gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) edges = cv.Canny(gray, 50, 150, apertureSize=3) lines = cv.HoughLines(edges, 1, np.pi/180, 200)#半径步长为1,每次偏转1度,直线最小长度200 for line in
2021-01-23 13:58:25
355
1
原创 python+openCV图像处理(二十)边缘检测
import cv2 as cvimport numpy as npdef edge_demo(image): blurred = cv.GaussianBlur(image, (3, 3), 0)#降噪 gray = cv.cvtColor(blurred, cv.COLOR_BGR2GRAY) # X Gradient xgrad = cv.Sobel(gray, cv.CV_16SC1, 1, 0) # Y Gradient ygrad = cv.
2020-12-27 23:51:35
188
原创 python+openCV图像处理(十九)边缘检测
import cv2 as cvimport numpy as npdef lapalian_demo(image): #dst = cv.Laplacian(image, cv.CV_32F) #lpls = cv.convertScaleAbs(dst) kernel = np.array([[1, 1, 1], [1, -8, 1], [1, 1, 1]]) dst = cv.filter2D(image, cv.CV_32F, kernel=kernel)
2020-12-27 23:50:32
187
原创 python+openCV图像处理(十八)图像金字塔
import cv2 as cvimport numpy as npdef pyramid_demo(image):#图像金字塔 level = 3 temp = image.copy() pyramid_images = [] for i in range(level): dst = cv.pyrDown(temp) pyramid_images.append(dst) cv.imshow("pyramid_down_"
2020-12-27 23:49:36
120
原创 python+openCV图像处理(十七)
import cv2 as cvimport numpy as npdef big_image_binary(image): print(image.shape) cw = 256 ch = 256 h, w = image.shape[:2] gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) for row in range(0, h, ch): for col in range(0, w, cw
2020-12-27 23:48:36
104
tensorflow-1.13.1-cp37-cp37m-win_amd64.whl
2019-09-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人