IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于差值的图像超分辨率方法 -> 正文阅读

[人工智能]基于差值的图像超分辨率方法

基于差值的图像超分辨率方法

图像超分辨率方法指的是使用一些方法将低分辨率的图像转换为高分辨率的图像。
在这里插入图片描述
传统的基于差值的图像超分辨率方法是指将利用像素间的相关性等特点,通过某些运算,对像素个数进行扩充(比如将64x64的图像扩充为512x512的图像)。
在这里插入图片描述
如上图所示,一张图像的取样点越多,我们看的越清楚。取样点越少,我们近视的度数越高。
在这里插入图片描述
但是如上图所示,原图像2x2的像素块,扩充为4x4的像素块以后,这16的像素值应该怎样取值呢。
目前主要有三种,即最近邻差值法、双线性差值法和双三次差值法。

最近邻插值法

最近邻插值法的思想很简单,就是近朱者赤近墨者黑。
在这里插入图片描述
以坐标轴为例,已知两点的x值和y值,如果给剩余的x值赋值,那么红色部分的x值取左边的y值,因为相比右边,它离得左边更近;同理,绿色部分的x值取右边的y值。
将上述思想应用到图像中,可以用下式表示。
{ s r c X = d s t X × s r c W i d t h d s t W i d t h s r c Y = d s t Y × s r c H e i g h t d s t H e i g h t \begin{dcases} srcX=dstX \times \dfrac{srcWidth}{dstWidth} \\\\ srcY=dstY \times \dfrac{srcHeight}{dstHeight} \end{dcases} ? ? ??srcX=dstX×dstWidthsrcWidth?srcY=dstY×dstHeightsrcHeight??
其中dstX和dstY是所需要扩充的像素点的坐标。srcWidth和srcHeight为原图像的宽和高(如原图像为2x2的像素块,则srcWidth=2,srcHeight=2)。dstWidth和dstHeight为扩展后图像的宽和高。扩展后的(dstX,dstY)为原图像的(srcX,srcY)位置的像素值。
在这里插入图片描述
如上图所示,想要填充的坐标位置为(3,2),原图像大小为2x2,想要变成4x4大小的图像。则,dstX=3,dstY=2,srcWidth=2,srcHeight=2,dstWidth=4,dstHeight=4。代入公式计算可得, srcX=1.5,srcX=1。经四舍五入,(3,2)点像素值为原图像(2,1)点的像素,也就是黄色。
在这里插入图片描述
上图为对每个位置进行计算后的结果。

单线性插值法

在这里插入图片描述
单线性插值法由我们初中时候学过的知识两点确定一条直线引入。
除了经典的y=kx+b以外,我们还学过一个两点式的方法来在坐标轴中描述一条直线。
y ? y 1 x ? x 1 = y 2 ? y 1 x 2 ? x 1 \dfrac{y-y1}{x-x1}=\dfrac{y2-y1}{x2-x1} x?x1y?y1?=x2?x1y2?y1?
经过简单的变化可以得到。
y = x 2 ? x x 2 ? x 1 y 1 + x ? x 1 x 2 ? x 1 y 2 y=\dfrac{x2-x}{x2-x1}y1+\dfrac{x-x1}{x2-x1}y2 y=x2?x1x2?x?y1+x2?x1x?x1?y2
在这里插入图片描述
已知点(x1,y1)和点(x2,y2)代入上述式子求出直线的函数,如果我们想得到x点y的坐标,只需要将x点代入函数即可。
而对于图像来说,则需要四个点的参与。也就是说最近邻插值法生成的新位置的像素值只需要一个点的参与,而在单线性插值法中,需要原图像四个点的参与。
比如,经过最近邻插值法中提到的运算方法,新的像素值(x,y)落在原图像的四个像素值之间,如下图所示。
在这里插入图片描述
首先使用两点式生成f(x0,y1)和f(x0,y0)的直线函数,其中f(x0,y1)为图像在(x0,y1)位置的像素值,代入y,得到结果f(x0,y)。同理,得到f(x1,y)。
在这里插入图片描述
使用两点式生成f(x0,y)和f(x1,y0)的直线函数,代入x,即可得到所求的f(x,y)的值。
在这里插入图片描述
可以根据下图,方便理解。
在这里插入图片描述

双三次插值法

而双三次插值法则需要周围16个点的参与,这个方法也是这三个方法中恢复效果最好的。因此我们或许可以大胆推断,参与的点越多,越能实现更好的超分辨率效果。但是,相应的,计算量也会大很多。
在这里插入图片描述

双三次插值法的主要思想就是它的像素值是其周围16个像素值的赋予不同的权重之和。
对于点(i,j),它为最终的像素值的贡献可以写为f(i,j)xw(u)xw(v)。其中,w()为权重函数,u和v为i+u和j+v到i和j的距离。
最终的结果可以用线性代数的方式表示如下。
f ( i + u , j + v ) = A × B × C f(i+u,j+v)= A\times B\times C f(i+u,j+v)=A×B×C
{ A = [ w ( 1 + u ) w ( u ) w ( 1 ? u ) w ( 2 ? u ) ] B = [ f ( i ? 1 , j ? 1 ) f ( i ? 1 , j + 0 ) f ( i ? 1 , j + 1 ) f ( i ? 1 , j + 2 ) f ( i + 0 , j ? 1 ) f ( i + 0 , j + 0 ) f ( i + 0 , j + 1 ) f ( i + 0 , j + 2 ) f ( i + 1 , j ? 1 ) f ( i + 1 , j + 0 ) f ( i + 1 , j + 1 ) f ( i + 1 , j + 2 ) f ( i + 2 , j ? 1 ) f ( i + 2 , j + 0 ) f ( i + 2 , j + 1 ) f ( i + 2 , j + 2 ) ] C = [ w ( 1 + v ) w ( v ) w ( 1 ? v ) w ( 2 ? v ) ] T ? ∣ x ∣ \begin{dcases} A= \begin{bmatrix*}[r] w(1+u)& w(u)& w(1-u)& w(2-u) \end{bmatrix*}\\ B= \begin{bmatrix*}[r] f(i?1,j?1)& f(i?1,j+0)& f(i?1,j+1)& f(i?1,j+2)\\f(i+0,j?1)&f(i+0,j+0)&f(i+0,j+1)&f(i+0,j+2)\\f(i+1,j?1)&f(i+1,j+0)&f(i+1,j+1)&f(i+1,j+2)\\f(i+2,j?1)&f(i+2,j+0)&f(i+2,j+1)&f(i+2,j+2) \end{bmatrix*}\\ C= \begin{bmatrix*}[r] w(1+v)&w(v)&w(1?v)&w(2?v) \end{bmatrix*}{^T}\eqslantless|{x}| \end{dcases} ? ? ??A=[w(1+u)?w(u)?w(1?u)?w(2?u)?]B=? ??f(i?1,j?1)f(i+0,j?1)f(i+1,j?1)f(i+2,j?1)?f(i?1,j+0)f(i+0,j+0)f(i+1,j+0)f(i+2,j+0)?f(i?1,j+1)f(i+0,j+1)f(i+1,j+1)f(i+2,j+1)?f(i?1,j+2)f(i+0,j+2)f(i+1,j+2)f(i+2,j+2)?? ??C=[w(1+v)?w(v)?w(1?v)?w(2?v)?]T?x?
w ( x ) = { 1 ? 2 ∣ x ∣ 2 + ∣ x ∣ 3 if? ∣ x ∣ < 1 4 ? 8 ∣ x ∣ 2 + 5 ∣ x ∣ 2 ? ∣ x ∣ 3 if? 1 ? ∣ x ∣ < 2 0 if? 2 ? ∣ x ∣ w(x)=\begin{dcases} 1-2|{x}|^2+|{x}|^3 &\text{if } |{x}|<1 \\ 4-8|{x}|^2+5|{x}|^2-|{x}|^3&\text{if } 1\eqslantless|{x}|<2\\0&\text{if } 2\eqslantless|{x}| \end{dcases} w(x)=? ? ??1?2∣x2+x34?8∣x2+5∣x2?x30?if?x<1if?1?x<2if?2?x?

方法对比

在这里,先将一张512x512的图像转换为64x64的,再用三种方法进行恢复。
在这里插入图片描述
可以看到,最近邻插值法有比较明显的马赛克效应,双三次插值法的恢复效果相对最好。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:56:46  更:2022-10-31 12:01:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 23:20:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码