极简metalens(1)

这篇极简科普是关于:

  • metalens
  • metasurface, 超表面, 超颖表面
  • Pancharatnam Berry Phase
  • 几何相位, 贝里相位

这些都是一个领域的东西.

近期研读VR文献和专利, 反复发现Pancharatnam Berry Phase透镜这个东西, 如果入射光是圆偏振光, 可以产生相反的屈光度, 比如对于右旋圆偏振光(RCP)是+3D的透镜, 对于左旋圆偏振光(LCP)的就是-3D, 实在是非常魔法.

作为一个已经认真学习本领域技术1整天, 认识本领域专家的学生的师兄的哥们的, 不写剧情与人物的科幻小说(发明专利)作家. 我认为自己已经有足够的资格来撰写一篇极简科普. (没错我就是在黑各种极简).

本极简科普是以临床眼科医生为假设读者撰写的, 就是那些听见“像差”就呵呵, 看见公式就晕过去的家伙们.

阅读更多…

坚决地无痛

这是一个关于特定类型运动损伤后的个人经验:

坚决地无痛, 保持连续6-8小时

这完全是个人经验, 我不是骨科或运动医学专业医生、这个经验不是任何专家推荐, 没有经过临床试验验证, 据我所知没有记录在教科书中, 也没有指南推荐.

应用这个经验的风险, 需您自己承担.

但据我所知, 这个经验并不违背常见的运动损伤处理原则.

以下详细解释:

阅读更多…

一种判定用笔正确与否的定量方法

据说是开尔文勋爵的语录:

度量就是了解。如果你不能测量它,你就不能改善它。 To measure is to know. If you can not measure it, you can not improve it.

唐代张怀瓘说: “夫书,第一用笔,第二识势,第三裹束“

我以为:

  • 用笔是科学问题, 关注对不对: 如何行笔可以保持笔尖能够回复到初始状态;
  • 识势是技术问题, 关注好不好: 按什么loss可以求最优解, 哪些常用解是独立的, 哪些是耦合的;
  • 裹束是艺术问题, 关注美不美: 我不懂.

现在练字只关心科学问题. 最近发现了定量度量用笔对不对的方法.

阅读更多…

Pancake光路

Facebook发了一篇非常华丽的paper, 里面用全息(Holographic, 原教旨意义的全息, 不是各种市场部吹嘘的引申假借)做了一个超薄的VR眼镜.

Holographic-optics

完全是一副未来已来的样子.

不过我在看文献的时候, 却对里面回顾的另一个光路很感兴趣.

这个光路令光线往返了3次, 可以将光程缩短为原来的1/3, 当然也是有代价的, 代价是亮度降低到原来的25%, 不过看起来很有趣, 而且是一种通用的方案, 在其他的光路设计上也很有可能使用到. 同时, 对于其中元件的微小移动都可能造成3倍的光程变化, 对于调焦可能也很有用.

于是我就决定用Jones矢量和Jones矩阵推导一下, 看看光路中到底发生了什么.

阅读更多…

笔顺

我记得小学的时候, 曾经为笔顺的问题苦恼过, 这好像还考试过. 后来长大以后发现, 连会写字的人都不多了, 哪里还顾及什么写字的笔顺. 笔顺这种事情, 在现代社会就像是茴香豆的四种写法, 无用. 但偶尔考据一下也挺有趣的.

在说笔顺的时候

  1. 是针对手写的, 印刷的字没有笔顺的意义.
  2. 是针对古代人手写的, 也就是用毛笔, 写繁体字.

毛笔有毛笔的特点, 它是软的, 它是离散的笔毛构成的, 跟硬笔完全不同, (当然硬笔中钢笔和圆珠笔、铅笔也有不同).

比如, 现代人用硬笔可以很方便用力画出一个圆圈或者方块, 但用毛笔就很麻烦. 毛笔如果用力画一个完整圆周, 笔毛会搅乱, 这样就没法再继续写下一笔了, 所以毛笔写字里要么分开画两个半周; 要么在画了180度以后要做个调锋的动作把笔毛顺回来, 再继续; 要么就要改变力度, 使用比较细的笔画画出一半圆.

黄简老师讲过, 在手写的时候, 汉字的基本组成部分不是偏旁部首, 而是“笔势”. 基础的笔势有5个, 奋笔势、竖笔势、勾裹势、勾努势和衮笔势. 从这基础的五势出发, 还可以细分出更多的笔势, 名字都很帅气, 比如凤翅势、顾盼势、连波势...

有一天我跟淳子小姐聊天时, 不慎把“势”写成了“式”, 她说这些名字颇有武侠之风. 一下子令人茅塞顿开, 我理解, 笔势, 就是常见的一些小的笔画组合, 这些笔画以这样的方式组合起来, 写得顺滑方便. 有点像武技中的小组合, 两个直拳以后近身一个勾拳再接一个横摆, 就很顺手, 也容易得手. 也和武技类似, 一个一个小组合按不同时间顺序连接起来就成了套路. 而一个一个笔势, 放在不同空间位置“裹束”起来就成了手写的字.

手写是依照笔势来组织笔画, 因此笔顺是按照笔势来的, 不完全是按照偏旁部首来安排的.

那么, 如何区分笔势, 或者如何知道一个字的笔顺呢? 我觉得可以去看那些写字好的人是怎么写的, 而且要找到能够看出他们笔画顺序的字.

写字好的人自然是找书法家. 要看出字的笔画顺序, 则是应该找到行书. 篆隶、楷书(真书)太规整, 草书跟现代使用的文字差别又太大. 行书是最好, 笔画之间往往有牵丝或者飞渡, 能够看出笔尖行走的路径. 而且如果有墨迹本是最佳, 看得清楚.

现在有很多书法辞典、网站、app, 可以一口气查到很多书法家所写的. 我喜欢“不厌书法”这个app. 练字时还可以拍照对比. 随手查一下的话, 网站也不错. 比如书法字典. 注意, 书法家也有不同, 通常还是越有名、越古老的书法家越好. 王羲之是首选权威, 晋唐优先, 宋元次之, 明清就仅供参考了.

好了, 来练习一下, 震惊语文老师的笔顺题.

  • 集的笔顺是怎样的?
  • 盛的笔顺是怎样的?

阅读更多…

OpenCV C++学习笔记(7): 命令行解析

OpenCV里有个CommandLineParser, 可以用来解析命令行, 方便不少.

首先要定义一个keys:

const char* keys =
{
    "{help      |   | print this message}"
    "{@input i  |   | input video file}"
    "{@output o |   | output video file}"
    "{low       |35 | low value}"
    "{high      |100| high value}"
};

两根竖线里面是默认值

然后在int main(int argc, const char * argv[])里面, 要声明一个

    CommandLineParser parser(argc, argv, keys);

接着就可以处理parser里的东西了,

  • 判断一个参数有没有, 可以用parser.has(参数名)
  • 取得参数值, 可以用parser.get<类型>(参数名或者序号)

比如, 单独写一个函数来处理这些参数, 用传引用的方法来传递获取的参数值.

bool get_CLI(CommandLineParser &parser,
             String &filename,
             String &output_filename){

    parser.about("change video color and contrast");
    //If requires help show
    if (parser.has("help"))
    {
        parser.printMessage();
        return true;
    }

    filename= parser.get<String>("@input");
    if (parser.has("@output")){
        output_filename=parser.get<String>(1);
    }else{
        output_filename=
        filename.substr(0,filename.length()-4)+
        "_changed.MP4";
    }
    return false;
}

OpenCV C++学习笔记(6): 颜色识别定位

在 opencv-srf 网站上, 有一个颜色检测和物体跟踪的示例. 使用inRange来检测颜色, 并且Moments类来追踪这个颜色的物体.

这个例子只能追踪一个物体, 如果有多个同样颜色的物体, 用Moments只能找到这些物体最外面的框, 把这些物体当作一个, 找到他们的中心. 但这不是我想要的. 所以只好临摹了另外一个示例, 将两个凑在一起, 达成了目的.

阅读更多…