1. 介绍

hqx(“hq” 代表 “high quality”;“x” 代表放大倍数)算法准确来说是hqnx算法,
是Maxim Stepin开发的Pixel-art scaling algorithms算法之一。hqx有三个滤波器:hq2x、hq3x和hq4x,其放大倍数分别为2、3和4。

先来看下使用最邻近插值算法得到的放大结果:

然后再看看使用hq3x算法进行放大之后得到的结果:

可以看到图像的锯齿情况有了很明显的改善。

2. 算法思想

首先,将源像素周围的8个像素中的每个像素的颜色与源像素的颜色进行比较。通过根据阈值检查颜色相似的像素来检测形状。这就给出了28=2562^8=25628=256种相似或不同邻居的组合。为了将单个像素扩展为2×2、3×3或4×4像素块,在包含必要插值模式的预定义表中查找邻域排列。

  • 1) 第一步:是对源像素的3x3区域进行分析。首先,我们计算中心像素与其8个最近邻之间的色差。然后将这种差异与预定义的阈值进行比较,并将这些像素分为两类:“关闭”和“远”颜色。有8个邻居,所以我们得到256个可能的组合。
  • 2)下一步:是过滤,使用包含256个条目的查找表,每个近邻/远距离有色邻居组合一个条目。每个条目描述如何混合3x3区域的源像素的颜色,以获得滤波图像的内插像素。
  • 3)目前的实现是利用YUV颜色空间来计算色差,对Y(亮度)分量具有更大的容限,然后对颜色分量U和V进行颜色空间转换,如果源图像的格式为每像素16位,则使用简单的查找表即可实现颜色空间转换。还可以使用MMX指令计算色差并将它们与阈值进行比较。
  • 4)创建查找表是最困难的部分是:对于每个组合,必须确定区域的最可能的矢量表示,在图像的不同颜色区域之间的边缘的想法被保留,边缘方向接近于正确的一个PO。斯泰尔然后使用反走样将该矢量表示以更高的(3x)分辨率光栅化,并且结果被存储在查找表中
  • 5)过滤器不是为照片设计的,而是为清晰的边缘图像设计的,比如线条图形或卡通精灵。它还被设计成足够快,可以实时处理256x256图像。

3. 实现

由于它的代码比较长,这里就不直接贴出来了,可以去我的资源页查找下载,后续审核通过会贴出链接。

2020.12.14更新:
由于原来的demo在CSDN没有审核通过,需要demo的请私信并留下邮箱地址,或者参考下面的资源:

  1. google code hqx
  2. libxbr-standalone

2018.6.4更新:
工程代码demo下载地址:链接

高性能图像放大算法——hqx算法相关推荐

  1. B样条差值算法图像放大的学习和实现

    一个简单的 双三次B样条算法 实现的 图像放大 B样条算法图像放大的学习和实现 一.总体设计思路 本次B样条图像放大的实现建立在之前做的图像的显示,双线性插值图像放大的基础上.因为有之前的基础,所以实 ...

  2. 图片缩放 算法 matlab,图像放大算法总结及MATLAB源程序.doc

    图像放大算法总结及MATLAB源程序 1,插值算法(3种): (1)最邻近插值(近邻取样法): 最近插值的的思想很简单就是把这个非整数坐标作一个四舍五入,取最近的整数点坐标处的点的颜色.可见,最邻近插 ...

  3. 图像增强系列之图像自动去暗角算法

    本篇博文来自博主Imageshop,打赏或想要查阅更多内容可以移步至Imageshop. 转载自:https://www.cnblogs.com/Imageshop/p/6166394.html    ...

  4. 图像自动去暗角算法(vegnetting

    暗角图像是一种在现实中较为常见的图像,其主要特征就是在图像四个角有较为显著的亮度下降,比如下面两幅图.根据其形成的成因,主要有3种:natural vignetting, pixel vignetti ...

  5. 图像增强系列之图像自动去暗角算法。

    暗角图像是一种在现实中较为常见的图像,其主要特征就是在图像四个角有较为显著的亮度下降,比如下面两幅图.根据其形成的成因,主要有3种:natural vignetting, pixel vignetti ...

  6. MUSICA(多尺度图像对比度增强)算法的简要原理及VC实现-1[r]

    MUSICA的专利文档:MUSICA_patent - Original document.pdf 算法原理:     图像增强的一般方法是对比度拉伸和直方图均衡,这两种方法对于灰度级过于集中, 还有 ...

  7. 反锐化掩膜_图像反锐化掩膜算法研究解析.doc

    中北大学 课 程 设 计 说 明 书 学生姓名: xxx 学 号: 11xxxxxxxx 学 院: 信息与通信工程学院 专 业: 电子信息工程 题 目: 图像反锐化掩膜算法研究 指导教师: 田秀荣 职 ...

  8. 图像切割--Seam Carving算法

    Seam Carving算法 一.相关理论       Seam Carving 算法是2007年siggraph上的一篇paper,名为<Seam Carving for Content-Aw ...

  9. 图像超分辨率重建算法,让模糊图像变清晰(附数据和代码)

    一.  图像超分辨率重建概述 1. 概念 图像分辨率是一组用于评估图像中蕴含细节信息丰富程度的性能参数,包括时间分辨率.空间分辨率及色阶分辨率等,体现了成像系统实际所能反映物体细节信息的能力.相较于低 ...

  10. 一文读懂图像局部特征点检测算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|新机器视觉 研究图像特征检测已经有一段时间了,图像特征检 ...

最新文章

  1. ccf压缩编码java_压缩编码(CCF)——动态规划
  2. C++中null与0的区别
  3. Linux ubuntu16.04 安装opencv4教程(源码编译)
  4. 工具箱 - Putty 安装调试3
  5. (2)Linux进程调度器-CPU负载
  6. c++检测固定usb端口有无设备接入_电脑USB技术白皮书
  7. JavaScript设计模式与开发实践系列之单例模式
  8. html文件用的那个版本,html – 使用Django进行静态文件版本控制
  9. Oracle事务隔离级别
  10. 如何构建NTP时间服务器
  11. 使用 CleanWipe 解决Symantec Endpoint Protection卸载需要密码问题
  12. python RTL自动生成_用Python自动生成快闪文字视频
  13. 如何使用微软官方工具MediaCreationTool来制作Windows10启动盘
  14. 平面设计常用标准尺寸
  15. 谈一谈CloudBlog的系统架构
  16. Python/Basemap绘制美国人口分布示意图
  17. LeetCode:714. 买卖股票的最佳时机含手续费(python)
  18. 博取仪器3D产品配置
  19. [usaco3.2.4]ratios
  20. 炒外汇连续亏损的解决方法

热门文章

  1. 苹果,忘了发家的根本…
  2. chart.js使用学习——折线图(2:常用属性设置)
  3. 扒一扒:2020台湾Android-Kotlin--Java-面試題庫,竟如此--
  4. 创灵原始与鸿蒙,上古启示录
  5. MySQL InnoDB Cluster部署方案与实践
  6. 高性能计算中的并行计算、分布式计算、网格计算和云计算之间的区别与联系
  7. 全球与中国处方太阳镜市场深度研究分析报告
  8. 物流基础知识(十五)
  9. KDD cup 2017 高速公路收费站交通流量预测 中文翻译(转载)
  10. RPA进阶(二)Uipath应用实践