- View On GitHub
- 该项目是OPC Client的X64移植版
- 其实就是简单的替换了
OPC Core
部分的代码文件为64位版本的
- 其实就是简单的替换了
- 调试过程中碰到了诸多问题,但最终都被证明是操作系统的问题,已经记录在GitHub的README中
- OPCTI和OPCConnect基本涵盖了OPC开发的内容
Time Was
New 3DS 降级 破解记录
系统启动流程
- 位于nand的bootstrap9启动(系统更新不会写入该区域,因此可以放心的更新)
- bootstrap9加载sd卡中的/boot.firm
- 现在的/boot.firm是luma 3ds 提供的
- 在启动时按住Start,可以启动LUMA 3ds 的chain load 功能,它可以用于加载/luma/palyloads下的其他boot.firm
- /boot.frim会在启动完成后自动引到原始的系统
- boot.3dsx 是HBL的主程序
文件结构
- /3ds目录: .3ds软件目录, HBL启动后,默认就在此目录
- /cias目录: .cia文件目录
NYI摄影日常知识集
纽摄作为胶卷时代的经典,在数字时代尽管有诸多的局限性,但仍然有一些日常主题中常用的技巧,例如构图,布光,儿童摄影等
NYI摄影三原则
- 拍摄主体是基础,一定要保证主体的支配地位,排除物管要素。
- 拍摄中的其余元素都是引导,将读者视线引导至主体。
- 拍摄的主题是核心,它决定了相片的内涵和传递的感情,而主体通常是反映内涵的关键。
构图
- 除非正中央或贴边带来明显的视觉优势,否则不应当进行中央构图
- 眼睛是人像摄影的核心,对焦清晰,眼神高光通常是必要的。
- 人物为主的风光摄影中要积极利用透视效应,放大人像的支配地位
- 利用前景形成封闭框可以突出拍摄主体。
- 降低视角可以极大地扩大地面的厚重感,使主体更加突出
- 除非必要,永远在主体附近留充分的空间以便于裁剪
- 构图思路:中心-放大-封闭-采光-虚化-汇聚-重复-运动-后期裁剪
光线
- 正面硬光没有阴影,避免使用
- 45度光应当是比较完美的,阴影中仍有细节
- 90度光形成强烈的反差
- 人像摄影中,脸颊三角布光很容易构造,f/8是可以接受的最大光圈,必须保证每一处都清晰。
- 45度人像法:人体与镜头呈45度角,头转向镜头身体不动。45度三角布光
儿童摄影
… Read More相机物理基础
光圈与通光率的关系
* 对任意焦段,同样的f值拥有相同的通光率
* 光圈值为f,则通光率正比于1/f^2
曝光与白平衡
- 感光原件特性
感光元件的宽容度非常小,当拍摄范围内明暗变化大时,极容易出现暗部欠曝或亮部过曝的情形,不像人眼,同时可以看见亮部和暗部的细节。另外,过曝通常要比欠曝更容易被系统控制。 - 曝光和白平衡
在数码时代,我们应该忽略这两个因素,相机的自动系统会为我们留下最多的细节,利用后期调节要远比现场选择参数更加高效。
事实上,拍摄系统依据18%灰度原则,自动曝光时总是会选择一个参数,使整体获得尽可能多的细节。这也就产生了所谓的曝光误差,例如雪景偏暗,暗室偏亮。这些曝光误差在模拟时代是致命的,它让照片显得不真实,因此需要精确的调节曝光参数;而在数码时代,由于后期的存在,我们应当尽量多的保留拍摄细节,使自己有更多的可调节范围,当然,你如果不喜欢或不擅长后期,直接利用灰卡测光,直出也是可以的。
复制比与放大率
- 复制比是指 拍摄主体在感光原件上成的像 占 感光元件长度 的 比例。复制比的极限值为100%
图像的简单相位配准 with MATLAB
相位配准概述
相位配准是一种非常经典的理论,理论论述互联网上有很多,我直接给出一个流程图,简述重点。
- 相位配准的原始理论互联网上已经很多,我不过多赘述,使用完全相同的两个图像在空间内平移进行推导。只强调一下,在实际使用时,可以证明,只要两个图像有完全相同的部分,那么就可以使用相位配准
- 带有旋转/缩放的相位配准不要看普通教材,普通教材愚蠢的试图先绕图像中心旋转缩放,再进行平移。事实上,只要有空间变换(或刚体运动学)知识,就可以知道如果刚体可以仅通过缩放和旋转从A变为B,那么必然可以确定一个空间点O,使刚体A仅绕O进行一次缩放和一次旋转到达B,也就是说,只要我们确定了点O,那么进行对数极换元就可以直接确定旋转和缩放参数。
- 如果只是绕中心旋转的图片,那么做对数极换元,再做平移的相位配准即可,我必须说,这毫无意义,这里面的工作最大头为对数极换元,which和图像处理没有什么关系。
- MATLAB 2014a后自带了一个 imregcor 函数,它对重合区域较大(目测至少20%)的两个图像进行相位配准非常高效,平移,旋转 缩放都OK。本文末尾附带的是一个我的实现,它的重难点在于附带了一个图像拼接程序,要比相位配准中求出坐标更复杂。
function runrun()
PhCorrelationRotation('cameraman.png','cameraman_part_rotate_scaling.png',0)
end
function PhCorrelationRotation(baseimgpath,sampleimgpath,deltaH)
if
… Read More simpleBMP-非常简单的BMP读写项目
发现各种找到的库都非常巨大,抽象层次也很高,不能满足需求
自己刚写了一个C++读写bmp的类,支持8位灰度图,24位RGB图。
https://github.com/edimetia3d/simpleBMP
代码很短,其实看源码10分钟就了解干了些什么。
简要说明一下:
没有任何抽象,读取就是把bmp里的所有数据(是的,每个字节都用上了)都映射到某个定义过的变量。
保存就是把这些变量再写回磁盘。
其实最初是打算完全按照C来写的,对动态内存不太感冒,所以用了vector
读写部分用的还是fread fwrite,把vector的部分换成动态内存就完全可以在C下运行了。
每个变量的意思见
http://www.cnblogs.com/xiekeli/archive/2012/05/09/2491191.html
具体映射关系如下。
class ClImgBMP {
public:
ClBitMapFileHeader bmpFileHeaderData;
ClBitMapInfoHeader
… Read More Pyinstaller打包单个bundle时封装额外的资源文件
Pyinstaller简易使用说明:
安装:
pip install pyinstaller
在待打包目录下
新建一个批处理specgen.bat,内容为
pyi-makespec.exe Name.py -F -w –icon=fav.ico
新建一个批处理exegen.bat,内容为
pyinstaller.exe Name.spec
执行specgen.bat生成spec文件(若有需要,对其进行修改)
执行exegen.bat生成可执行文件,结果位于dist目录下
正文:
在编程时往往会引用一些额外文件,如图片,音乐等。
若是用Pyinstaller打包为文件夹,那么这些文件直接复制过去就行。… Read More
用 HD7xxx Series UEFI Patch Tool BETA 检测A卡是否支持UEFI
受吸引于Mantle&DX12,最近非常有意升级至WIN10,突发奇想想到了UEFI及GPT的优良性能,于是胆大折腾了一下,UEFI刷入成功。
参考教程:http://tieba.baidu.com/p/3515968645
同时也解决了一个问题:即如何检测显卡UEFI支持。利用上述链接中的工具 HD7xxx Series UEFI Patch Tool BETA即可
Step1.利用GPUZ提取显卡BIOS
Step2.用HD7xxx Series UEFI Patch Tool BETA打开BIOS文件,如果显示UEFI Enabled 那么就OK了… Read More
伪随机触发-增强OR削弱?PA大招不如剑圣被动?
发本文前本来就是想看看斧王是否削弱,PA大和jugg被动哪个屌,途中发现这个伪随机很有意思,就弄来看看了。
名词解释:
DOTA内伪随机触发:
对一个总体触发概率为的技能(注:高于0.4后伪随机效果不明显,如先锋盾等,此时按真随机应用就好)。在尝试触发时,若连续N-1次没有触发,则第N次触发时的真实触发概率为
详情见:PlayDota
例如
PA的暴击总体触发概率为0.15,那么它对应的C=0.03222。
第一次攻击时,真实触发概率为0.03222,若没有触发,第二次攻击的真实触发概率为0.03222*2……。若连续31次攻击都没有触发暴击,那么第32次的真实触发概率为1.0310,第32次攻击必暴。
结论先睹为快
首先请明确以下几点:
(1)我们分析的是技能在一场战斗中收益的期望,而非特定的某场战斗,更不是对整局游戏。
同时,由于每次技能触发都会重置触发器,消除之前所有战斗的影响。所以我们仅从战斗前最近一次触发开始,来统计技能对单次战斗的效果。
(2)此图仅展示了几个较典型的曲线,其余都做过计算,大部分都在0.9左右到达平台,估计0。05也是。
设技能触发器全部重置,看看同样攻击次数下伪随机的触发次数期望和真随机的触发次数期望对比。
图解 :以0.15概率对应的曲线为例,也就是PA大招的概率。… Read More