首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Julia 机器视觉入门

在科学计算中,像机器视觉、医学3D图像处理(如CT图像重建)都是常见的话题,Images库正是为此而设计,而且目前这个领域也是相对而言比较成熟的。

温馨提示: 在 Julia 的 REPL 环境下,可以使用 查看当前的工作目录,并可以使用 切换到新的工作目录。

安装相应的包

依赖可能比较复杂,大家看到 哪个包,请在 REPL 输入 ,自行 和构建。

以下代码用到的测试图片:

测试一下

效果如下:

这样,就可以开始愉快的玩耍了。

除了从本地加载图片,也可以通过网络获取图片。

预祝,圣诞节快乐!

测试图像集

计算机视觉有一些经典的测试图片。可以通过 包获取。

这样,在工作目录下,应该可以看到这张经典的山魈(xiao)的图片。

基本图像处理

调整图片大小

获取图片大小:

重新调整图片大小到 100 × 250。(悄悄告诉你,× 是在 REPL 下输入 获取的):

效果如下:

按比例缩放图片: 假如需要把图片放缩到原来图片的 60%,可以计算出新的图片尺寸,然后再进行放缩。因为 返回的是两个元素的元组,因此需要使用 。 则是找到和计算出来值最接近的整数。

类似的原理,可以对某一个维度进行单独的放缩。

在 Images 包中还提供了 ,可以将图像的大小沿着指定的维度减少两倍。换句话说,它将图片缩放 50%。

如果第二个参数填的是2,则缩放的是宽度。

旋转图片

图片旋转也是非常常见的操作。这个操作可以在 中找到。

裁剪图片

灰度图像

计算机视觉的操作中,最常见的操作就是把图像转化成灰度图。在 Julia 中,可以使用 函数完成该操作。

不过需要记住, 返回单个维度,而不是 RGB 图像的三维。可以使用 将单通道灰度图像转换为三通道灰度 RGB 图像:

图像二值化

对于图片数据集,预处理的时候通常会将图片进行二值化,这在识别和处理文本时非常常见(准确地说,是轮廓与线条)。在 Julia 中,只需使用一行代码:

这一行包含了三个操作,第一,将图片转换成灰度图像( )。第二,超过 0.5 设置为 true,低于 0.5 的设置为 。第三,通过乘以1,将布尔值转换为 0 和 1。

模糊图像

图像处理中,高斯模糊被广泛地应用于减少图像细节和获取模糊效果。要在 Julia 中使用高斯模糊,可以使用 和 函数。

这样就得到这样一张图片:

锐化图像

图像锐化用来补偿图像的轮廓,增强图像的边缘,可以使得图像变得更加清晰。下面代码采用的是高斯低通滤波对图像进行锐化处理。简单的说,原始的图像 + 原始图像 - 高斯低通滤波后的图像 = 锐化的图像

通过调整 和 参数可以得到不同程度的锐化效果。 推荐设置在 1 到 4 之间,而 推荐设置在 0.1 到 0.5。

最后

Julia 目前慢慢地稳定下来,常用的包也逐渐支持1.0了。计算机视觉还有很多可以写的,有机会接着写咯。这篇文章相对而言比较简单,Julia 基础设施非常完善,像图像这种矩阵型数据其实特别适合用 Julia 来处理。我们也可以看到,Julia 非常轻松地驾驭了这一领域。最后,我也和大家一样,期待 Julia 在更多领域得到应用。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181219G0GPR700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券