不断学习图像算法之亚像素

1、亚像素是什么

物理像素:传感器实际捕捉到的最小单位的像素

亚像素:通过差值等方法得到的虚拟像素

2、如何得到亚像素

    1)差值(双线性、双三次插值)

      双线性插值

线性插值就相当于 有一个函数f(x) = ax + b,在A、B两点之间能找到一个你想要的点。然后由于两点间的点有无数个,只用一个函数来确定我们想要的点误差有点大,就有了双线性插值,用多个函数来确定这个点。

感觉日常的图像放大缩小最简单的就是使用双线性插值,先计算缩小或放大多少,然后得到一个新的坐标轴,根据未变化前的坐标轴相邻的四个像素值来确定新位置的值。

双线性插值参考博主双线性插值(Bilinear Interpol)原理及应用_双边插值-优快云博客、双线性插值 - 一杯明月 - 博客园讲的十分清楚。

def bilinear_interpolation(image, x, y):
    """
    双线性插值函数
    :param image: 输入图像
    :param x: 目标点的横坐标
    :param y: 目标点的纵坐标
    :return: 目标点的插值结果
    """
    # 获取目标点所在的四个像素点坐标
    x1, y1 = int(x), int(y)
    x2, y2 = min(x1 + 1, image.shape[1] - 1), min(y1 + 1, image.shape[0] - 1)

    # 获取四个像素点的灰度值
    Q11 = image[y1, x1]
    Q21 = image[y1, x2]
    Q12 = image[y2, x1]
    Q22 = image[y2, x2]

    # 计算权重
    dx = x - x1
    dy = y - y1

    # 计算目标点的插值结果
    result = (Q11 * (1 - dx) * (1 - dy) +
              Q21 * dx * (1 - dy) +
              Q12 * (1 - dx) * dy +
              Q22 * dx * dy)

    return result

     双三次插值

双三次插值又称立方卷积插值,利用周围16个点来插值。不仅考虑到4 个直接相邻点的灰度影响,而且考虑到各邻点间灰度值变化率的影响。三次插值更准确,锯齿更少。

双三次插值(BiCubic插值)-优快云博客

    2)深度学习

    ESPCN、SRCNN、FBCNN、DNCNN,一系列CNN,GAN、Diffusion

   亚像素的一篇论文分析:实时超分利器:ESPCN与亚像素卷积层详解-优快云博客

FBCNN:https://github.com/jiaxi-jiang/FBCNN?tab=readme-ov-file

DNCNN:https://github.com/cszn/DnCNN

BSRGAN:https://github.com/xinntao/ESRGAN

Diffusion:https://github.com/bahjat-kawar/ddrm-jpeg

    感觉图像跟深度学习扯上关系都跟亚像素有关。。

3、亚像素在图像配准中的应用

最简单的应用:jpeg去块效应,虽然不理想但是有用。然后是边缘检测。

图像配准,下面博主说的妙,要多学习。

亚像素级特征定位技术-优快云博客

今天想到总结一下,原因是因为我想要对jpeg图像进行两次压缩,然后合并得到更高质量的图像,无从下手,就随便写写。and今天日报咋整,啥也没有啊!!!!!a !!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值