MENU

数字图像处理?

GitHub: Bokjan/LabDIP的Release中可以找到生成好的二进制。

突如其来的stress

这个学期开了一门课叫数字媒体处理技术,课程内容倒是非常丰富,图像、音频、视频都讲了个遍,涉及的内容也非常广。虽说课是这么一直这么上着,但是给人的感觉是听了也就听了,不知道有什么用,怎么用。这倒是不要紧,10月13号(第六周)开始实验课了。原以为像往常的实验一样,这实验也不打紧,看到任务书倒是目瞪口呆。

修改示例程序,从一个图像显示框,改造成两个显示框,并增加一个文本参数输出框,实现类似下图的基本程序界面(可在此基础上进一步优化)。

  1. 功能区可以分tab页,按照后续功能添加;
  2. 图像显示区域需考虑图像的缩放与自适应显示;
  3. 参数输出区,用以显示过程,以及相关统计数据和调试信息,可滚动,可选择,可复制,可清除。
    阅读程序框架,继续采用Windows多线程和OpenMP两种方式,补充实现下述功能。算法需自行实现,不能直接使用OpenCV函数。
  4. 采用三阶插值的图像任意角度旋转与缩放
  5. 图像的傅立叶变换,并与功能1联动,输入图像经过旋转、缩放后的傅立叶变换结果可在右侧显示
  6. 给图像添加高斯噪声
  7. 采用采用平滑线性滤波、高斯滤波、维纳滤波三种方法过滤不同参数的高斯噪声

Read More

GDCPC 2018 背后的故事

前言

这个比赛其实是今年5月份举办的,拖到11月才写,确实是一次很严重的拖更。 比赛完当天在知乎发了一个回答之后,博客就一直拖着没写。前几天最后一笔省赛劳务费到了账(为了避税分成好几个月),我想再不写一下估计就要忘记发生了什么了。

2018年的省赛要在软院办,应该是去年就已经确定的事情;到了今年三月份,整个活动的准备工作陆陆续续开始了。令人没有想到的是,学院让我们年级的辅导员珊姐全权负责,团委学生会接小锅。我离开团委之前在学术部,每年学术部要办两场算法比赛,一个是新生杯,一个是院赛。而今年既然要办省赛,那院赛就省了,学术部接锅;当然其他的一些工作我看到志愿者部、宣传部还有文艺部等也都有帮忙。

说到这里,我其实一直是一个旁观者,毕竟退了团学以后这些事确实和我没关系。以前办这些比赛,都是用的hh教授弄的那个老掉牙的HUSTOJ魔改品,大概是担心这玩意儿会扛不住,我被找了过去负责技术方面的问题。其实这是件好事,依托非团学成员的身份,这是一次真·有偿活动,又拿钱又拿志愿时。

Read More

Radiom,来自电磁波的熵

前言

今天要介绍的是一个C语言编写的随机数库Radiom,它需要RTLSDR硬件设备支持。目前仅能在Linux平台使用,不过可以很方便地修改,使其能够在Windows和macOS上生成。其实一个月以前就在做这个工作了,毕竟那一段时间比较闲,想要找一点事情做。不过基本完工之后呢,又渐渐地忙了起来,所以这里其实是写的一个月前的事情。

两年以前,我就写过一篇《软件定义无线电导论》,简单介绍了一些廉价的 RealTeK SDR 设备的玩法。一个月前经常纠结于外卖点什么的问题,经常使用RANDOM.ORG的服务。那么也算是心血来潮,我想,为什么不可以自己做一个相似的东西呢?想到手边有一个RTL2832的电视棒,觉得可行,于是说干就干了。

Read More

来自z/OS的你好世界

前言

作为改变现代人类生活的85项重大发明之一,IBM大型机被广泛应用于金融、电信、交通、能源等支柱行业。我校拥有IBM新型的64位Z系列大型机一台,是“IBM主机系统大学合作项目”中唯一一所华南地区院校。目前IBM主机系统教育中心(广州)开设5门IBM大型机课程,分别是:《IBM主机系统和操作系统导论》、《CICS事务处理》、《COBOL语言》、《IBM zSeries DB2》、《大型主机系统管理》。这五门课程相关性大,完成所有课程的学生IBM公司将颁发主机教育Professional Certification证书,完成一门以上但未完成所有课程的学生颁发Specialist Certification证书。

这是我校《COBOL语言》课程介绍的全部内容。当初因为好奇选择了这一门课程,正式开课后没想到IBM的大型机的概念完全超出了脑内能够想象的范围。并且由于时代潮流等原因,大型机技术也逐渐出现了式微的态势,Professional Certification大概是想都不用想了。

课程要求所有的实验均在zSeries大型机上完成,原本以为这会是一种类似于UNIX的体验,结果发现IBM的整套理论完全与我们常见的UNIX-like或Windows不同。在这里给大家展示 Hello World 的过程,也算是一种“科普”吧。

Read More

使用Dev-C++构建新BravoFinder

前言

BravoFinder第一次发布已经过去了接近两年时间,这段时间里获得了不少人的支持,也发现了一些问题。为了解决许多历史遗留问题,前一段时间我将整个项目完全推翻重写了一次,编码工作已经完成了,文档工作正在慢慢补上。

我一直致力于写平台无关的代码,并且在这个项目里面确实也不会用上专有的API。考虑到大部分模拟飞行玩家都是Windows用户,Windows平台是必须支持的。但我长时间在*nix下做开发,使用的工具链与微软系还是有一定距离,比如CMake在Windows上正常运作可能就有些困难了。在Windows上构建不会太难,但是一个示范介绍是绝对必要的。

准备工作

这次展示的内容依旧使用自由软件工具链,但不运行于类似于Cygwin的模拟环境下,而是完全使用Windows原生API。选择的IDE是轻量级C/C++开发工具Dev-C++,这个软件有一段历史了,官方更是早已停更,版本号停留在4.9.9.2。这里采用的是Orwell升级版,可以在SourceForge上下载。它附带了MinGW下的GCC及相关工具,GCC版本为4.9.2,稍显老旧,但支持BravoFinder中用到的C++11特性是足够了。

当然,在开始之前我们还需要将代码仓库给克隆下来。

Read More