用Navigator浏览元器件
打开Navigator面板的时候并没有能够看到元器件浏览器,如下左图,这里要编译工程后才能够看到元器件浏览器,操作步骤如下右图:
得到的结果如下,这里有元器件浏览器,也有网络等:
更新修改后的元件封装 导出到PCB没有room 本文摘录于:https://blog.csdn.net/qlexcel/article/details/78824900这里只是做学习备份之用,绝无抄袭之意,如果作者觉得有所不妥请联系本人,一定妥当处理!同时这里望阅读者查看原文章!
把Project->Project Option->Class Generation下的Generate Rooms的选项去掉就可以了。
2016年是VR元年,这一年度多少少做了点东西,都是关于VR&AR的,虽然现在是冷冬期,个人认为前景还是有的,只不过会曲折前进,工业革命还分好几次呢,对吧!
好了,最近比较空闲,会整理一些VR&AR的一些经验。
这一篇会讲一下如何在Unity中播放全景视频,以及对全景视频的优化。
楼主写这篇教程一用ouclus 为例。
一、Unity播放视频 新建一个工程,写放进去一个全景视频,如果放不进去就安装个quicktime,这个具体的网上有很多前辈已经写了教程,这里我就不多说了,导入视频后显示成这样:
如果显示成白的,就是没有导入成功。
播放视频我们这里用的Unity自带的MovieTexture,条件好的话可以使用Untiy的插件AV Pro.
我们新建一个场景,场景中新建一个Sphere,命名为UntiySphere,
然后新建一个材质,这个材质的shader设置成Particles/Alpha Blended,把这个材质给到UnitySphere,然后把全景视频拖到Particle Texture上
然后新建一个脚本,叫做PlayMovie,加入下面两行代码:
MovieTexture mov = (MovieTexture)GetComponent().material.mainTexture; mov.Play(); 将此脚本挂到UnitySphere上,然后将相机的Transform Reset,这个操作是把相机放到原点,坐标旋转置为0,大小设为1, 同样我们把UntiySphere的Transform也Reset,然后将大小改到3,就是把相机包含到球里面。
我们连接好Ouclus,将Untiy的PlayerSettings设置为VR Supported,ouclus,如下图所示:
然后我们运行,就可以看到播放的全景视频
戴上oculus头显可以360度自由旋转。
当然到这里你可能疑问,为啥没有声音,这里很简单,在UnitySphere上添加组件AudioSource,
然后把全景视频下的音频文件拖进去,让它自动播放:
好了播放去全景视频就是这么简单,代码只需要两行就好了。
二、全景视频的优化 但是这里我们往头顶上看的时候会发现一个问题,头顶的图片看的不是连接自然的,能看到明显的缝隙,如图:
那下面我们就来优化这个问题,有三种思路:
1.从Untiy这边解决 从Untiy这边解决就是,我们不用Untiy自带的Sphere,因为它自带的贴图uv分部不均匀,极点会产生Twist效果,我们自己使用Mesh建立一个自己的Octahedron球,就是正八面体拆分的球,然后贴图吻合,材质我们使用跟上面一致的,具体这个球的怎么建立的详见我之前写的关于球的两篇博客:
Mesh画球 Mesh给球贴图
然后我们播放全景视频的代码做稍稍改动:
// Use this for initialization IEnumerator Start() { //此处等待是为了保证Mesh创建球的时间,实际根据电脑性能或调整脚本执行顺序即可忽略 yield return new WaitForSeconds(1f); MovieTexture mov = (MovieTexture)GetComponent().material.mainTexture; mov.Play(); } 这样运行后的效果如图: 2.从模型发面解决 上面这种方法是基于Untiy原生的改变解决问题,如果你觉得太麻烦的话就不需要如此做,找模型制作的同事帮忙制作了一个比较规则的球,它的uv贴图展开的特别均匀,如图所示:
直接把场景中的UntiySphere替换成模型的ball,其它的一样,这样运行的结果如图:
这样也能达到一样的效果,性能上还省了我们Untiy创建球的时间,空间上这个模型也不大才69kb
与第一种比起来第二种更好,但是mesh的底层研究知道肯定比不知道好。
3.替换MeshFilter 楼主研究了下AVPRo插件里的全景视频的播放,发现它播放的不但很清楚,而且也没有twist的问题,一开始以为是它自己写的shader也能解决这个问题,于是把Untiy自带的Sphere赋予插件里的shader,发现问题依然存在,后来仔细研究一下,发现原来它替换了一个MeshFilter,它的MeshFilter是一个Octahedron的球,跟我们Mesh建立球的思路一样,但是它不是Untiy创建的,而是一个创建好了的片,这样比第二种方法的模型还要方便。 这个片如图所示: 我们把UnitySphere的MeshFilter替换成这个片运行后如图所示: 同样解决了哈,方法三比前面两种似乎更加方便呢。 工程下载地址
这是一个winform程序,MD5计算,SQLserver表格数据查询,修改操作.
点击登录时,会将ID和转换成MD5值的密码 与数据库用户表中的信息作查询,由查询结果判断是否登录成功.
1.登录成功:可以使用修改密码button,(显示欢迎),点击修改密码,弹出新窗口,可以在新窗口中作修改密码操作(检验旧密码,确认新密码),存储在数据库中的密码依旧是MD5值
2.登录失败:由返回值确定是用户名不存在还是密码错误
登录
private void btnLogin_Click(object sender, EventArgs e) { string loginId = txtId.Text.Trim(); string loginPwd = CommonHelp.GetMD5FromString(txtPwd.Text).ToLower(); //校验用户名是否存在以及密码是否正确 string sql = "select CC_AutoId,CC_UserName,CC_LoginPassword from T_Seats where cc_loginId=@uid"; SqlParameter pms = new SqlParameter("@uid", loginId); //用户名密码的校验标记 bool userExist = false; bool pwdCorrect = false; using (SqlDataReader reader= SqlHelper.ExecuteReader(sql, CommandType.Text, pms)) { if (reader.HasRows) { userExist = true; if (reader.Read()) { //获取查询到的密码 string uPwd = reader.GetString(2); //密码比较 if (uPwd==loginPwd) { pwdCorrect = true; btn3.
显示密码
function aaa() {
var passType = document.getElementById(‘pw’).type;
if(passType == “text”){
document.getElementById(‘pw’).type = “password”;
}else{
document.getElementById(‘pw’).type = “text”;
} }
转载
https://github.com/taizilongxu/interview_python
C# Selenium-疑难杂症 发现网络上的C#Selenium文章好少,讲问题的就更少了。这个文章主要纪录一些疑难杂症和一些解决办法。本文中所用的是wedDriver 也就是Selenium2
1.StaleElementReferenceException(元素过期异常) 样子下下图;
在查找元素后,返回了元素对象的引用,但对象里是一堆异常。这里不会报错,只有调试才能看到,属于一个暗坑呀。。
解决办法:在查找元素前加一个延迟。比如点击后,要获取提示信息。那么应该在点击后延迟一点时间,给页面时间来反应。
2.stale element reference: element is not attached to the page document(过时元素引用:元素未附加到页面文档) 错误如下图:
这个错通常出现在找到页面元素,当页面元素变化后没有更新导致的。至于为什么会这样,我推测是元素依附的那个HTML文档是以前的,当没有重新获取,元素对象在新的页面中就消失了,所以会提示找不到了。
解决办法:重新用FindElement()方法找一次
3.no such element: Unable to locate element(没有这样的元素:无法定位元素) 错误下如图: 元素存在HTML中,但是代码中却报错。这会在页面上是处于隐藏的,当然不能找到拉! 还有一种是路径没有写对。虽然有多种方式,但我不太喜欢用Xpath来定位。Xpath是绝对路径,但我们平时要测试的网页大部分是变化的,那Xpath就需要老修改,不太方便。PS:这里说的变化是开发中修改网页、或是网页更新(百度首页也不可能几年都不变呀)。当HTML被加载后,只要不刷新或是DIV中没有发生网页填充,这时的HTML文档结构是短暂不变的
解决办法: 1.如果确认路径没有错的情况下,一点要模拟鼠标去写代码。比如这里,账户登录不点击的话,忘记密码是不会显示的,就定位不到了。 2.如果是路径的问题,尽量用唯一的去定位。比如连接中的文字(LinkText)、ID这些
未完待续
本文为《视觉信息处理的脑机制》(1997,寿天德)第四章的读书笔记 视皮层:大脑皮层中主要负责处理视觉信息的部分,包括初级视皮层(V1即17区),纹外皮层(18,,19区),是研究较为透彻的皮层;
视觉感受野:视觉系统 任何一级水平的单细胞活动,若受一定的空间和时间构型的光刺激视网膜某区域而调制时,这个区域即称为细胞的感受野(视觉细胞在视网膜上的代表区);
概述:少数的视皮层细胞其感受野构型与外膝体相似,为同心圆式对称的,正是接入外膝体输入最多的那一层。但大多数皮层细胞对弥散光没有反应,而对特殊方位(或朝向)的条形光有强烈的反应。按其感受野的的特征分为:简单细胞,复杂细胞(标准复杂细胞),超复杂细胞(特殊复杂细胞)。
4.1 简单细胞的感受野及其特点
主要分布:17区第4层内
形态特店:感受野较小,呈长方形,中心区为狭长型,在其一侧或双侧有一个与之平行的拮抗区。
反应特点:简单细胞对大面积的弥散光无反应,而对处于拮抗区边缘一定方位和一定宽度的条形刺激有强烈的反应。
功能:1)比较适合于检测具有明暗对比的直边,对边缘的位置和方位有严格的选择性;2)对每一个简单细胞,有一个最优方位,反应最强烈,因细胞而异,偏离越远,反应越小;
分类:
形态学上:简单细胞可能相当于皮层的星形细胞
4.2 复杂细胞的感受野及其特点
形态特点:感受野比简单细胞大
反应特点:具有特定的方位,不存在明确的拮抗区,对条形刺激在感受野中的位置无严格要求,
功能:复杂细胞处理的信息是关于方位的抽象概念(?)
4.3 超复杂细胞
主要分布:皮层18 19区的3,5 层
形态特点:与复杂细胞相似,超复杂细胞的一端或两端有很强的抑制区,因此要求条形刺激有一定的长度,过长时就抑制,反应减少或消失,为端点终止反应
功能特点:最优刺激是具有一定方位的端点,角隅和拐角等
补充:在皮层17区还发现一些与颜色对比有关的简单细胞,复杂细胞和特殊复杂细胞(?)
4.4 视皮层细胞的双眼汇聚和立体视觉
1.只有在视觉皮层水平,来自双眼的信息才有可能产生汇聚;
2.外膝体的轴突与皮层细胞形成突触的层次上,有80%的神经元能为双眼驱动,这种细胞双眼刺激比单眼刺激强烈;
3.大多数皮层细胞都可以分别为左、右眼驱动,而且这种双眼细胞有两个感受野,分别为左右眼所有。 双眼细胞的两个感受野有以下特点:
1)都在对侧视野上对应的位置
2)时间–空间反应特性十分相似:最优方位,最优运动速度,感受野面积和形状;、
3)双眼刺激比单眼刺激强烈,存在双眼相互总和作用(有抑制的例外);
4)双眼细胞多数对双眼感受野间的空间视差很为敏感,提供了立体视觉的神经基础,陈祚视差敏感细胞;
5)同一刺激在两眼所引起的反应并不完全相等, 眼优势;
4.四类对深度敏感的细胞 第一类 兴奋性深度协调神经元(最常见),单眼均为兴奋,双眼相当不同,特定空间深度时才产生增强的兴奋,更近或更远有显著的抑制 第二类 抑制性深度协调神经元 ,注视点平面产生抑制反应;
第三、四类 近细胞和远细胞 分别对注视点进近的和远的产生兴奋。近细胞 注视平面近端产生兴奋对远端抑制,远细胞相反;近细胞和远细胞具有较长范围的相互作用;
特点:第一二类细胞显然对深度空间的位置视差特别敏感,对注释平面的金运动也敏感,近细胞与远细胞只能给出粗略的深度上的运动方向。
5.探测运动的细胞
4.5
1. 每个简单细胞进队某一特定频率敏感,高于低于反应衰减,超过一半不反应
2. 复杂细胞空间分辨率比简单细胞低
3. 简单细胞基于此可能是视觉系统的空间频率分析器,复杂细胞与运动有关,属于Y通道,简单细胞属于X通道
4. 空间频率多通道假说:存在一系列彼此独立的,对不同空间频率具有选择敏感性的通道,视觉对比敏感度函数由这些独立的频率选择通道合成的包络组成。
小结:
视网膜神经节细胞,还是外膝体或皮层细胞,对于接近他们感受野的亮暗边缘,反应均较强烈;在全亮全暗时,外膝体、神经节 显然变弱,皮层细胞等无反应;简单、复杂、超复杂细胞只对有一定方位的边缘、拐角有反应,简单细胞还要求落在感受野的特殊位置,超级复杂细胞仅对拐角(直角)有最优反应。
4.6 视皮层和皮层下细胞的图形适应
定义:图形长时间刺激引起的适应(阈值升高)称为图形适应。
4.7 视觉方位和方向敏感性的皮层下机制
疑惑:简单细胞是怎样对直线有响应的?
空间频率的多通道假说?
操作步骤: 1.File–>New–>Project 2.选择maven-archetype-webapp
3.填写groupId和artifactId
4.填写maven settings文件的地址、本地仓库的地址
5.填写projectName
问题: 1.本机电脑上不同maven项目所用的仓库地址不一致,有的配置的是局域网内的地址,如果本机没处在局域网中就不能用。所以,我让自己电脑中的所有项目都使用一个本地仓库,但是为不同的项目配置不同的settings.xml。下面是我为自己试验项目配的settings.xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository>D:\maven\repositorylocalRepository> <mirrors> <mirror> <id>alimavenid> <name>aliyun mavenname> <url>http://maven.aliyun.com/nexus/content/groups/public/url> <mirrorOf>centralmirrorOf> mirror> mirrors> settings> 所以在上面的步骤4时,需要修改user settings.xml文件的位置。
2.idea maven mvn archetype:generate 速度缓慢,控制台一直显示Generating project in Batch mode,状态栏一直Running。 webapp的archetype下载缓慢,项目的目录结构一直创建不出来。 我们需要在上述步骤的第4步时,添加一个属性项。这样archetype就不会从远程仓库加载。
archetypecatalog的值可以是remote,internal,local区别如下:
remote,远程Maven库中提供的模板。mvn archetype:generate默认使用该类模板 internal,Apache Maven项目默认提供的模板。mvn archetype:generate -DarchetypeCatalog=internal使用该类模板 local,本地Maven库中提供的模板。mvn archetype:generate默认使用该类模板,作为remote的补充。Maven初始为空,执行mvn install时会将当前项目加入local模板库
总结: 1.archetype
archetype: In short, Archetype is a Maven project templating toolkit。 maven-archetype-webapp : An archetype to generate a sample Maven Webapp project.
1 目标 (1)访问像素值; (2)初始化矩阵为0; (3)学习saturate_cast做什么和它为什么有用? (4)Get some cool info about pixel transformations 2 理论 可以参考[计算机视觉:算法和应用](http://szeliski.org/Book/)一文。 3 图像处理 (1)图像处理运算就是一个函数把输入的一个或多个图像,转换为输出图像的过程; (2)图像变换可以被看成: a) 像素点的转换; b) 邻域的操作(基于域的概念); 4 像素变换 在这类转换中,每一个输出像素点仅仅依赖于相对应的输入像素点(潜在地附加一些收集的全面信息和参数)。 这类操作的例子有:亮度和对比度的调整,以及色彩校正和转换。
4.1 亮度和对比度调整 (1) 理论公式为 (2) 在这里, 和 被称为增益和偏差参数,有时候,也被认为分别控制对比度和亮度。 (3)你可以认为f(x)是输入图像的像素值,g(x)是输出图像的像素值。那么为了方便我们就可以把上面的公式写为: 在这里,i和j分别代表像素点在行和列的位置。
4.2 代码实现 #include #include #include using namespace cv; double alpha; /**< Simple contrast control */ int beta; /**< Simple brightness control */ int main( int argc, char** argv ) { /// Read image given by user Mat image = imread( argv[1] ); Mat new_image = Mat::zeros( image.
四种最好的免费Bootstrap在线设计工具 Bootstrap带来了设计革命,本文介绍的四种免费Bootstrap在线设计工具,可视化所见所得设计网页,然后输出Html/CSS代码,其中有些甚至可以实现拖曳,也有可以设定自己的主题模板Theme。
1. Layoutit LayoutIt通过使用我们的拖放界面生成器帮助您简单快速地创建Bootstrap前端代码。它陈列出Bootstrap的每个元素和组件,你只需要用鼠标拖曳到页面上即完成设计,让您的前端编码更容易,不需要你是javascript,HTML5或CSS3的专家。所有的设计可以是响应式的CSS和流体。设计完成后,您只需下载HTML即获得自己设计的源码。 LayoutIt有四个主要菜单,Grid网格系统,这是布局Layout方面,是你首先必须选择的,是单栏 或左右分栏等;在Components组件中选择导航条;文字工作是选择”BASE CSS”,当你熟悉该工具以后,编写一个现代Html页面如同在Word里编辑文档一样方便容易。
2.Bootstrap Magic Bootstrap Magic主题生成器充分兼容Bootstrap3和AngularJS。您可以轻松快速地创建您自己的Twitter Bootstrap主题。这是可视化的,页面上陈列出所有Bootstrap的组件样式,你能够立即改变,也立即看到你改变的内容效果。您还可以从谷歌Webfont添加更棒的webfonts。他们都包含神奇的typehead字体。当你设计好自己的主题后,能够发布分享你的主题。
3. Fancyboot Fancyboot也是一个Bootstrap 简单但功能强大的定制工具,能够设计自己的主题,可以选择自己需要设计的组件,然后进行定制,设计完成后下载,没有所有不必要的复杂性。
4.Bootsnipp Bootsnipp是一个针对网页设计师的网页元素设计画廊,使用Bootstrap的人会发现这是他们设计网站是必不可少的。该设计工具虽然也是一种主题设计器,但是对每个BootStrap元素组件设计定制能力更强,能够单独对某个组件进行可视化选择设计,比如幻灯片设计可以选择上下方向变动还是左右方向。