自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HNUYSY的博客

想从大三开始好好记录学习历程

  • 博客(185)
  • 资源 (1)
  • 收藏
  • 关注

原创 python3配置PyOpenGL环境

因为计算机图形学课程需要使用OpenGL画图,不习惯用C++写代码,所以我发现了python也有pyopengl库可以实现画图,于是开始了长达半个小时的安装,这里把踩的坑写一下。首先如果直接pip install PyOpenGL PyOpenGL_accelerate我直接是安装成功了,然后就以为可以使用了,跑了一下测试代码:from OpenGL.GL import *from OpenGL.GLU import *from OpenGL.GLUT import *def Draw

2020-12-07 16:01:26 1634 1

原创 数字图像处理——图像频域增强

图像几何变换图像频域增强图像变换的目的傅里叶变换空间频率的理解如何看频谱图从频域变回空间域:图像频域增强图像变换是图像频域增强技术的基础,也是变换域分析理论的基础,图像频域增强基于图像信号的频域模型。图像变换的目的简化图像的处理;便于图像特征的提取;图像压缩;从概念上增强对图像信息的理解。傅里叶变换在图像处理中,傅里叶变换一种有效而重要的方法,如:图像特征提取,频率域滤波,周期性噪声的去除,图像恢复等。可以将图像从空间域转换到频率域进行处理。至于傅里叶变换的其他概念和具体实现细节,这里不多

2020-11-23 10:55:57 3628

原创 数字图像处理——图像几何变换

图像几何变换图像缩放图像平移图像镜像图像旋转图像透视变换图像缩放cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)参数表示意义src源图像dsize需要调整到的尺寸dst目标图像fx沿x轴的缩放比例fy沿y轴的缩放比例interpolation插值方式插值方法作用INTER_NEAREST最近邻插值INTER_LIN

2020-11-22 12:35:39 1188

原创 数字图像处理——空域滤波

平滑滤波器平滑滤波器的用途:1.对大图像处理前,删去无用的细小细节2.连接中断的线段和曲线3.降低噪音4.平滑处理,恢复过分锐化的图像5.图像创艺(阴影、软边、朦胧效果)平滑滤波器的设计可以自行调整,主要就是关注滤波器的大小和滤波器的系数。这里我使用椒盐噪声,先生成含有含有椒盐噪声的图像。import cv2 as cv import numpy as np import matplotlib.pyplot as plt import randomdef sp_noise(i.

2020-11-21 13:54:59 2770

原创 数字图像处理——直方图均衡化

直方图均衡化:  希望一幅图像的像素占有全部可能的灰度级并且分布均匀,能够具有高对比度。  使用的方法是灰度级变换。  基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果。随便测试一张图片的直方图:import cv2 as cvimport numpy as npimport matplotlib.pyplot as pltdef cv_show(name, img): ''' 显示图像 '''

2020-11-21 12:27:47 2208 1

原创 数字图像处理——图像点运算

图像点运算  快一个月没写点博客了,一直忙忙碌碌地不停向前走,大三上也过了一半了,知识越积越多,也没去好好总结一下,所以还是想把脚步放缓一点,学习了之后进行总结,温故而知新,希望能加深对知识点的理解,以便更好地去运用。  翻开老师很久之前发的PPT,数字图像处理这门课程知识点还是很多的,自己也很喜欢这门课程,所以今天想把点运算的一些常用方法总结一下。图像点运算点运算的定义:  对于一副输入图像,将产生一副输出图像,输出图像的每个像素点的灰度值由输入像素点决定。运算由灰度变换函数确定。代码我都是

2020-11-20 19:44:58 1353

原创 MiddlePoint算法

MiddlePoint  MiddlePoint算法:代中点入直线的隐式方程中,然后判定正负  假定直线的斜率在0到1之间(直线和x轴的夹角小于45°),x=x(i)时已选(x(i), y(i))像素,此时x=x(i)+1与直线最近的像素P1(x(i)+1, y1(i))、P2(x(i)+1), y(i)+1)。  假定M是表示P1与P2的中点,M=(x(i)+1, y(i)+0.5),Q是直线与垂直线x=x(i)+1的交点,如果M在Q的下方,那么P2离直线更近,应该取为下一个像素点;如果M在Q点上方

2020-10-15 13:43:44 1299

原创 OpenGL图形学中的DDA算法

DDA(Digital Differential Analyzer):数字积分法  计算机中,直线并不是连续的,二是离散的点,这是光珊化的本质决定的。  两点确定一条直线,假设如果给出了起点和终点分别是(x1,y1),(x2,y2),假设这条直线为 y = mx + b,那么斜率m就是:m = dy / dx = (y2 - y1) / (x2 - x1)b = (x2y1 - x1y2) / (x2 - x1)有限差分近似解是:x(i+1) = x(i) + ∆xy(i+1) = y(i)

2020-10-15 12:41:15 3095

原创 OpenGL环境配置

图形学基础——OpenGL环境的配置  今天算是在两节课的理论知识过后,正式开始学习计算机图形学这门课程,老师说这门课开始都是介绍很多算法。这些算法还是得实现并且进行可视化来进行观察,所以现在先将OpenGL——开放式图形库的环境配置好。  ;我选择使用的是Visual Studio2017。首先打开VS2017,新建——>项目,新建一个控制台应用。  ;然后项目——>管理NuGet程序包,在浏览出搜索nupengl,将下图两个包下载下来。  ;OpenGL配置完毕,下面就可以进行程

2020-10-15 10:32:27 1128

原创 JavaScript之web Storage事件机制

对本地Storage中数据的操作(修改、删除)进行监听,并且可以根据监听结果给出相应的处理语法:window.addEventListener(“storage”,doReaction,flag);“storage”:表示对Storage(包括session和local)进行监听doReaction:自定义函数,事件发生时回调,会接收一个StorageEvent类型的参数,包括storageArea、key(发生变化的key)、oldValue(原值)、newValue(新值)、url(引发变化的U

2020-07-06 19:27:44 492

原创 JavaScript之Web Storage

HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,功能比cookie强大,存储数据量也远大于cookie的4KB,官方建议为每个网站5MB,部分浏览器可支持到10MB甚至更多。包括2个不同类型sessionStorage:浏览器关闭后数据即失效localStorage:数据永久有效写localStorage.变量名=值;读var value= localStorage.变量名;以上用法要求变量名必须符合JS命名规范sessionStorage用法与localStorage相同

2020-07-06 19:21:32 191

原创 JavaScript之readcookie

读取所有cookievar str = document.cookie;var array = str.split("; ");for (var i = 0; i < array.length; i++) { var array2 = array[i].split("="); //array2[0]是名称,array2[1]是值}读取指定名称的cookie:var index=document.cookie.indexOf(key+"=");var start=index+key.

2020-07-06 19:08:03 518

原创 JavaScript之writeCookie

出于记录用户特定数据的目的,需要客户端数据存储技术常用存储机制Cookie优点:可与服务器端交互、浏览器自动管理不同站点的数据并发送到服务器端缺点:安全性受限、数据量受限、可用性受限、明文存储Web StorageHTML5新增,分为localStorage和sessionStorage优点:操作简单、不会自动发送到服务器端、存储空间大缺点:安全性受限、永不过期、不区分站点、明文存储Cookie存储:以键值对形式存储,在客户端通过document对象的cookie属性进行操作Cooki

2020-07-06 18:59:00 529

原创 JavaScript之Select和Option对象

Select代表HTML表单中的一个下拉列表Select对象常用属性、方法和事件Option代表HTML表单中下拉列表中的一个选项在HTML表单中标签每出现一次,一个Option对象就会被创建Option对象常用属性text:设置或返回某个选项的纯文本值value:设置或返回被送往服务器的值<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <

2020-07-06 17:17:52 1355

原创 JavaScript之基本包装类型

基本包装类型即基本类型地包装类型。为了便于操作基本类型,提供了三个特殊地引用类型:String,Number和Boolean。每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而能够调用一些方法来操作这些数据。基本数据类型:string、number、boolean…引用数据类型:Math、Array、Date、String、Number、Boolean…因为有了基本包装类型,所以JS中的基本类型值可以被当作对象来访问基本类型特征:每个包装类型都映射到同名的基本类型;

2020-07-06 17:01:09 321

原创 JavaScript之使用正则表达式进行客户端表单校验

文本框对象先把html框架搭好<body> <h1>用户注册</h1> <form action="success.html" onsubmit="return checkInput()"> <table> <tr> <td>用户名:</td> <td>

2020-07-06 16:42:14 254

原创 通过原型为String添加新的方法

给Sting加一个用正则表达式求出字符串中有多少个数字的方法。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <s

2020-07-06 16:11:52 542

原创 JavaScript之String对象的正则匹配

String对象的以下方法,支持使用正则表达式search:检索与正则表达式相匹配的子字符串,返回第一个与regexp相匹配的子串的起始位置,若找不到则返回-1match:检索与正则表达式相匹配的子字符串,返回第一个匹配结果(无全局标志g)或存放所有匹配结果的数组(有全局标志g)replace:检索与正则表达式相匹配的子字符串,然后用第二个参数来替换这些子串,全局标志g有效split:按照与正则表达式匹配的字符作为分隔符 <script type="text/javascript">

2020-07-02 11:56:42 685

原创 JavaScript之正则表达式的应用

1.判断身份证的格式(新旧身份证都要支持)var reg = /^[1-9]{14}(\d{2}[\dX])?$/i;2.判断电话号码格式:区号可选,可用()或-分割区号,区号0开头,共3或4位;号码7或8位var reg = /^(\(0\d{2,3}\)|0\d{2,3}-)?([1-9]\d{6,7})$/;3.判断Email地址//例如[email protected] [email protected] reg = /^\w+@\w+(\.[a-z]{2,3}){1,2}$/;...

2020-07-02 11:49:24 136

原创 JavaScript之正则表达式

正则表达式(RegExp)是Regular Expression缩写,是用于查找符合某些规则的字符串的工具。正则表达式是一个描述字符模式的对象,当检索某个文本时,可以使用一种模式来描述要检索的内容,RegExp 就是这种模式。简单的模式可以是一个单独的字符,复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。可以规定字符串中的检索位置,以及要检索的字符类型等。匹配模式pattern一个用于指定匹配规则的字符串,由三部分组成:元字符:具有特殊含义的字符量词:指定字符出现的次数特殊符号

2020-07-02 11:25:02 157

原创 制作一个12小时时钟

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { .

2020-07-02 10:47:10 1070

原创 如何计算某年某月有多少天?

Date具有自动调节至正常日期的功能计算某年某月有多少天一般两种方式方式一:var year = prompt("请输入年份:") * 1; var month = prompt("请输入月份:") * 1;//方式1 var d = new Date(year, month - 1, 31);var day = d.getDate(); //可能的取值:31、1、2、3if (day == 31) { console.log("31天");} else { consol

2020-07-02 10:12:33 2915

原创 JavaScript之Date对象

Date对象用于处理日期和时间用法:var 日期对象 = new Date(参数);<script> var today = new Date(); var d0 = new Date("2016-2-14 12:30:24"); var d1 = new Date("2016/2/14 12:30:24"); var d2 = new Date(2016, 7, 18, 11); //月份取值为[0-11],7表示8月 var d3 = new D

2020-07-02 10:02:44 140

原创 JavaScript之String的基本用法

String常用方法:<script> var str = "Hello World!"; var str2 = new String("welcome to 武汉"); console.log(str + ",长度:" + str.length); console.log(str2 + ",长度:" + str2.length); //查询方法 //charAt() var c1 = str.charAt(2); //索引从0开始

2020-07-02 09:38:31 352

原创 JavaScript之异常处理exception

在JavaScript中使用try…catch…finally语句来进行异常处理try捕获异常的第一步是用try{…}语句块选定可能出现异常的代码catch在catch语句块中捕获并处理异常,编写对异常对象进行处理的代码可以通过捕获到的异常对象,获取异常的详细信息finally无论如何都要执行的代码,放在finally中try代码块必选,catch代码块可选,finally代码块可选,但是catch和finally必须至少有一个<script> var num = 5;

2020-07-02 09:11:59 588

原创 JavaScript之原型链

原型链任何对象都有原型对象,原型对象也有原型对象,对象的原型对象一直往上找,直至找到null为止在这个过程中,有一个Object类型的,有很多方法的对象,它就是Object.prototype,位于顶层<script> var nums = new Array(12, 4, 23, 5); //nums对象的原型链结构 //nums --> Array.prototype --> Object.prototype --> null var

2020-07-02 08:59:49 72

原创 JavaScript之原型式继承

原型式继承原型式继承就是对象继承自其原型对象在对象的原型对象中添加属性,该对象就会自动继承得到方式:一:动态向原型对象中添加<script> function Student(name) { this.name = name; } var stu = new Student("tom"); //原型式继承 //方式1:动态向原型对象中添加属性 Student.prototype.age = 21; Studen

2020-07-02 08:51:35 101

原创 JavaScript之组合式继承

继承的概念面向对象的三大特征:封装,继承,多态封装:将复杂的操作包裹起来,进行隐藏,简单化,安全化继承:拿来主义,自己没有,把别人的拿过来,让其成为自己的JavaScript中有两种继承模型:1.原型式继承2.组合式继承组合式继承就是将其他对象中的成员添加到自己身上 var obj1={ name:"tom", age:20, sex:"male", study:function(){ console.log(this.name+"正在学习!"); } };

2020-07-02 08:42:47 212

原创 JavaScript之对象的类型

对象的类型是什么?typeof判断对象时统一返回objectinstanceof判断对象时返回true或false,无法获取类型名称构造函数的名称就是对象的类型var stu=new Student() ------> Student类型var p=new Person() ------> Person类型var nums=new Array() ------> Array类型var obj=new Object() ------> Object类型cons

2020-06-29 21:52:59 160

原创 JavaScript之_proto_和prototype的关系

prototype是一个隐藏属性,于是为每个对象提供一个叫_proto_的属性对象的_proto_与创建它的构造函数的prototype本质上是一个东西_proto_是站在对象的角度讨论其原型对象prototype是站在构造函数的角度讨论原型属性,是构造函数创建对象的原型对象由于_proto_是非标准属性,因此一般不建议使用<script> function Student(name) { this.name = name; this.show

2020-06-29 21:10:22 137

原创 JavaScript之prototype原型

Prototype原型在构造函数中有一个属性叫prototype可以通过prototype来添加新的属性和方法,并且新增内容为该构造函数的所有对象所共有由该构造函数创建的对象会默认连接到该属性上<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initi

2020-06-29 20:48:34 140

原创 JavaScript之闭包Closure

JS中特有现象,在一个函数内部又定义了一个函数,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥。<script> //在一个函数内部又定义一个函数 function f1() { var n = 99; function f2() { //只是定义函数,必须调用才会执行 console.log(n); //在内部函数f2中可以访问到函数f1中的局部变量n } //f2();

2020-06-29 20:30:44 92

原创 JavaScript之数据类型详解

数据类型基本数据类型引用数据类型基本数据类型string,number,boolean,undefined,null引用数据类型Object,Array…JavaScript中将内存分为两种类型:栈内存、堆内存1.栈内存基本数据类型的变量和引用数据类型变量的引用,会存储在栈内存中,存取速度较快2.堆内存引用数据类型的变量,会存储在堆内存中,存取速度较慢注:在创建引用数据类型变量时,首先会在栈内存上为其引用分配一块空间,而其具体数据会存储在堆内存中,然后由栈上的引用指向堆中的地址。即引

2020-06-29 18:53:32 81

原创 JavaScript之基本类型和引用类型作为方法的参数

基本类型和引用类型作为方法的参数:基本类型作为方法的参数:传递的是参数的值在函数内部修改参数的值,不会改变外部变量引用类型作为方法的参数传递的是参数的引用在函数内部修改参数的值,会影响外部变量<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ini

2020-06-29 18:50:25 183

原创 JavaScript之instanceof

使用instanceof判断对象的类型typeof和instanceof的区别:typeof可以判断任意变量的类型,在判断对象类型的适合,typeof总是返回objectinstanceof只能判断对象的类型,判断对象的精确类型时,返回true或者false<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" co

2020-06-29 18:48:32 107

原创 JavaScript之JSON简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生产,是JavaScript的一个子集。结构特点:键值对的集合应用:客户端和服务器直键传递数据语法:var jsonObj = {属性名:属性值;方法名:function(){“函数定义”};}属性名必须使用双引号引起来一般不在JSON对象中定义方法JSON和对象字面量的区别:JSON属性必须加双引号,而对象字面量可加可不加var person={ "nam

2020-06-29 18:01:45 434

原创 JavaScript之for...in遍历

for…in循环遍历:for(var key in stu){console.log(key + ”=“ + stu[key]);//这里不可以使用stu.key}<script type="text/javascript"> var stu={ name:"ysy", age:20, "height":178, "js-score":100, //如果属性名不符合强制规范,则必须使用引号引起来 study:function(){ console.log("我

2020-06-29 17:48:05 318

原创 JavaScript之对象属性值得类型

对象属性值得类型:属性值的类型:基本值,函数,对象对象类型的属性值对象的属性值是一个基本值<script type="text/javascript"> //方式一 function Student(name, age, sex, html, css, javascript) { this.name = name; this.age = age; this.sex = sex;

2020-06-29 17:46:59 150

原创 JavaScript之对象字面量

使用字面量创建对象:属性名可加引号,也可不加,标准写法是不加双引号如果命名不规范,则必须加引号,例如:”js-score“<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> //字面量

2020-06-29 17:20:12 172

原创 JavaScript之this关键字

this关键字this表示当前对象函数中的this,表示调用函数的当前对象<script> function fn() { var a = 8; console.log("fn函数"); console.log(this); //此处this表示window,因为是window调用的此函数 //解决局部变量和全局变量同名问题 console.log(a); console.log(thi

2020-06-29 16:59:34 173

基于ADT实现图的邻接矩阵和图算法.zip

基于ADT实现的图的邻接矩阵,包含了基本的图算法的实现,包括BFS,DFS,拓扑排序,Prim,Kruskal,Dijkstra,Floyd,有注释,有测试样例,检验过没问题。

2019-11-27

空空如也

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

TA关注的人

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