这篇推免经历,我很早就计划写一写。在各项推免事务都落定后的寒假,可以敲敲键盘啦。
首先是对于华工计院同学的重要提醒:
去年(2018年)华工计院对推免政策进行了调整,3月开始确定大三学生的推免资格。届时,推免本校的学生需签订协议,推免外校的需提交外校导师的接收函,否则失去推免资格。
最近,我在合作实现一个有美肤、瘦脸功能的美颜滤镜,作为数字图像处理课程的大作业。我负责美肤部分,这几天设计、实现了肤色检测、美白降噪的相关算法,自觉研究了些东西,就写了这篇笔记。
其中的美白降噪部分比较简单,只要调色、滤波就可以了,剩下的是用经验、技巧来改善效果。这篇文章以论述肤色检测为主,课题的其他部分也会有所涉及。
当初打算建一个Hexo博客的原因之一,是可以方便地添加latex支持。前些天写nlp的课程笔记,需要写公式时,才发现事情要更加复杂。
我目前用的next主题,是可以直接配置公式支持,可选择mathjax和katex两种主流插件。
mathjax使用js动态渲染用$
标记的latex代码,提供一些交互操作。
katex有js版和css版,next主题支持的是后者。显然,需要先把latex公式渲染成katex对应的html代码,公式才能正确显示。好处是,网页里公式的加载速度更快。另外,相较于mathjax,katex的对latex的语法支持更有限。
然而事情没有这么简单,接下来的问题是,hexo的默认渲染器hexo-renderer-marked不支持latex语法,一些latex中的符号会被误认为是markdown语法,比如\
、_
和*
,这让mathjax不能正确地渲染(katex需要渲染器支持,根本不能工作)。粗暴的办法是,写latex公式时,对冲突符号添加markdown转义符号\
,这个方法很糟糕,公式书写不便,可移植性也差。或者修改渲染器代码里的正则表达式,改动语法规则,例如去掉markdown里用*
强调的语法,参考这篇文章,我也不喜欢这个办法。
最近用一个多月的时间看完了 Michael Collins 的 Natural Language Processing 课程视频。视频只有前面一小部分有英文字幕,后面连字幕也没有。。还好基本能听懂。Collins 大牛讲得深入浅出、耐心细致,非常适合用来入门nlp。
写下这个小结当作学习笔记吧。
这个不甚平凡的暑假,小伙伴们有各自的事情要忙。在家实在闲不住,决定学点新东西,就像以往的假期那样。
这回打算学一下桌面GUI开发,想找一个现代化、高效又美观、最好能跨平台的技术学一学。简单调研了一下,当前的跨平台的方案有:
一直觉得Qt系列不温不火的,Qt Quick应该是它的发展方向。 Java的据说比较难写,外观不好处理。 Electron的代表作应当是vs code,前段时间发现的HexoEditor也让我印象深刻,界面很好看,毕竟是用前端技术写出来的。 python圈的似乎比较冷门,pyOt也算Qt,其他的一般都用来写“能用就行”的小东西吧。 此外,直接写个web端也是简单方便的选择。(比如Apache的很多项目)
总体看来,目前不存在很好的跨平台GUI方案,我能想到原因有:
所以目前需要跨平台的大工程一般是分别在不同平台上实现界面。其实作为用户,我也更喜欢这样的软件。用跨平台框架写的软件往往体验更差一些,不能很好的利用平台特性,来优化外观、功能、性能等方面。
上面的方案虽然我基本上接触过,但只是皮毛,就不乱说了,这次的重点是electron。
我选择electron是因为它是开发方便、界面美观的新技术(相对其他方案),而且也能接触一下node.js。