<图像处理> 图像插值算法

这篇具有很好参考价值的文章主要介绍了<图像处理> 图像插值算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

图像插值算法

图像插值在图像处理中常用于调整图像尺寸或变形,其目标是根据给定像素点周围像素点的信息来预测该像素点的值。

常见的图像插值算法可以分为两类:自适应和非自适应。自适应的方法可以根据插值内容的特点来进行调整,而非自适应的方法对所有像素点都进行相同的处理。非自适应算法包括最近邻插值双线性插值双三次插值样条插值sinc插值lanczos插值等。这些算法可以根据需要调整插值的精度和计算复杂度,以实现图像的扭曲和缩放。

最近邻插值

最近邻插值是一种简单的插值方法,它选择离目标点最近的已知点的值作为新插入点的值。当源图像大小为 S r c W i d t h SrcWidth SrcWidth S r c H e i g h t SrcHeight SrcHeight,目标图像大小为 D s t W i d t h DstWidth DstWidth D s t H e i g h t DstHeight DstHeight,或者涨缩比例为 S x S_x Sx S y S_y Sy,则计算目标图像任意像素横纵坐标 d s t x dst_x dstx d s t y dst_y dsty如下:

  1. 如果 S x S_x Sx S y S_y Sy均为0,则先计算 S x S_x Sx S y S_y Sy
    S x = r o u n d ( D s t W i d t h / S r c W i d t h ) S_{x}=round(DstWidth/SrcWidth) Sx=round(DstWidth/SrcWidth) //水平涨缩比例
    S y = r o u n d ( D s t H e i g h t / S r c H e i g h t ) S_{y}=round(DstHeight/SrcHeight) Sy=round(DstHeight/SrcHeight) //竖直涨缩比例
  2. 计算目标图像->源图像的涨缩比例
    S x i n v = 1. / S x S_{xinv}=1./S_x Sxinv=1./Sx //反水平涨缩比例
    S y i n v = 1. / S y S_{yinv}=1./S_y Syinv=1./Sy //反竖直涨缩比例
  3. 计算目标像素在源图像中的坐标,注意边界条件
    d s t x = r o u n d ( s r c x ∗ S x i n v ) dst_x=round(src_x*S_{xinv}) dstx=round(srcxSxinv) //水平坐标
    d s t y = r o u n d ( s r c y ∗ S y i n v ) dst_y=round(src_y*S_{yinv}) dsty=round(srcySyinv) //竖直坐标
  4. 计算目标图像像素值
    I D s t ( x , y ) = I S r c ( d s t x , d s t y ) I_{Dst}(x,y)=I_{Src}(dst_x,dst_y) IDst(x,y)=ISrc(dstx,dsty)

双线性插值

双线性插值则是在两个方向上进行线性插值,通过对四个最近的已知点进行加权平均来确定新插入点的值,如下图所示,点P为目标图像任意像素坐标通过一定的涨缩比例变换至源图像的坐标位置,计算方式如下:

  1. 利用上述最近邻方法,计算目标图像像素坐标在源图像中的坐标位置
  2. 计算坐标偏差
    点P坐标 ( x , y ) (x,y) (x,y) t , u t,u t,u为小数部分坐标, t = x − x 0 , u = y − y 0 t=x-x0,u=y-y0 t=xx0u=yy0
  3. 先计算水平方向
    Q1,Q2线性插值: I Q 11 = I ( x 0 , y 0 ) ∗ ( 1 − t ) + I ( x 1 , y 0 ) ∗ t I_{Q11} = I(x_0,y_0) * (1-t) + I(x_1, y_0) * t IQ11=I(x0,y0)(1t)+I(x1,y0)t
    Q3,Q4线性插值: I Q 22 = I ( x 0 , y 1 ) ∗ ( 1 − t ) + I ( x 1 , y 1 ) ∗ t I_{Q22} = I(x_0, y_1) * (1-t) + I(x_1,y_1) *t IQ22=I(x0,y1)(1t)+I(x1,y1)t
  4. 利用Q11, Q22的值,进行垂直方向权重计算得出计算采样点值
    I D s t ( x , y ) = I Q 11 ∗ ( 1 − u ) + I Q 22 ∗ u I_{Dst}(x,y) = I_{Q11}*(1-u) + I_{Q22} * u IDst(x,y)=IQ11(1u)+IQ22u

<图像处理> 图像插值算法,图像处理,# OpenCV,图像处理,算法

双三次插值

双三次插值则是在两个方向上进行三次插值,通过对16个最近的已知点进行加权平均来确定新插入点的值。待补充算法。

OpenCV函数

void cv::resize(InputArray src, OutputArray dst, Size dsize, double fx = 0, double fy = 0, int interpolation = INTER_LINEAR)	

Parameters
src				输入图像;
dst				输出图像,其大小为dsize(当它非零时)或由src.size()、fx和fy计算得到的大小,类型与src相同;
dsize			输出图像尺寸,如果它等于0(在Python中为None),则计算为:dsize = Size(round(fx*src.cols), round(fy*src.rows)),dsize或者fx和fy都必须非零。
fx				水平轴比例因子,当它等于0时,计算为(double)dsize.width/src.cols
fy				纵轴比例因子,当它等于0时,计算为(double)dsize.height/src.rows
interpolation	插值方式, 见InterpolationFlags

InterpolationFlags文章来源地址https://www.toymoban.com/news/detail-724514.html

  • INTER_NEAREST :最近邻插值
  • INTER_LINEAR :双线性插值
  • INTER_CUBIC :双立方插值
  • INTER_AREA :利用像素面积关系进行重采样。它可能是图像抽取的首选方法,因为它可以得到与莫尔无关的结果。但当图像被放大时,它类似于INTER_NEAREST方法。
  • INTER_LANCZOS4 :8x8邻域上的LANCZOS4插值
  • INTER_LINEAR_EXACT :位精确双线性插值
  • INTER_NEAREST_EXACT :位精确近邻插值。这将产生与PIL、scikit-image或Matlab中的最近邻方法相同的结果。
  • INTER_MAX :插值掩码
  • WARP_FILL_OUTLIERS :标志,填充目标图像的所有像素。如果其中一些对应于源图像中的异常值,则将其设置为零
  • WARP_INVERSE_MAP :标志,逆变换,例如, linearPolar or logPolar 两种变化:flag is not set: dst(ρ,ϕ)=src(x,y);flag is set: dst(x,y)=src(ρ,ϕ);

参考

  1. https://blog.csdn.net/jia20003/article/details/6907152
  2. https://blog.csdn.net/jia20003/article/details/6915185

到了这里,关于<图像处理> 图像插值算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab图像处理-灰度插值法

    最近邻法 最近邻法是一种最简单的插值算法,输出像素的值为输入图像中与其最邻近的采样点的像素值。是将 ( u 0 , v 0 ) (u_0,v_0) 点最近的整数坐标 u , v (u,v) 点的灰度值取为 ( u 0 , v 0 ) (u_0,v_0) 点的灰度值。 在 ( u 0 , v 0 ) (u_0,v_0) 点各相邻像素间灰度变化较小时,这种方法是一

    2024年02月10日
    浏览(37)
  • MATLAB【数字图像处理】 实验一:图像处理基本操作(平移、放大、缩小、旋转、插值)

    1、熟悉并掌握MATLAB工具的使用;  2、实现图像的读取、显示、存储、平移、镜像、放大、缩小及旋转操作; 3、掌握常用的插值方法,并了解其优缺点。 Matlab 2020B 1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分别显示RGB图像和灰度图像,注上文字标

    2024年02月06日
    浏览(36)
  • OpenCV中的图像处理 —— 霍夫线 / 圈变换 + 图像分割(分水岭算法) + 交互式前景提取(GrabCut算法)

    🌎上一节我们介绍了OpenCV中傅里叶变换和模板匹配,这一部分我们来聊一聊霍夫线/圈变换的原理和应用、使用分水岭算法实现图像分割和使用GrabCut算法实现交互式前景提取 🏠哈喽大家好,这里是ErrorError!,一枚某高校大二本科在读的♂同学,希望未来在机器视觉领域能够有

    2023年04月08日
    浏览(32)
  • 《数字图像处理》实验之对图像进行双线性(bilinear)插值缩放

     最近数字图像处理的实验课,老师让我们实现 对图像进行双线性(bilinear)插值缩放 ,以下是原理和代码。 一、双线性插值缩放 1、图像几何变换的一般流程: ①确定变换后新图像的大小 ②对新图像的每一个像素,确定其在旧图像坐标中的对应位置(逆变换) ③确定旧图像

    2024年02月07日
    浏览(46)
  • OpenCV处理图像和计算机视觉任务时常见的算法和功能

    当涉及到OpenCV处理图像和计算机视觉任务时,有许多常见的具体算法和功能。以下是一些更具体的细分: 图像处理算法: 图像去噪 :包括均值去噪、高斯去噪、中值滤波等,用于减少图像中的噪声。 直方图均衡化 :用于增强图像的对比度,特别适用于低对比度图像。 边缘

    2024年02月11日
    浏览(31)
  • OpenCV-Python中的图像处理-GrabCut算法交互式前景提取

    cv2.grabCut(img: Mat, mask: typing.Optional[Mat], rect, bgdModel, fgdModel, iterCount, mode=…) img:输入图像 mask:掩模图像,用来确定那些区域是背景,前景,可能是前景/背景等。 可以设置为: cv2.GC_BGD,cv2.GC_FGD,cv2.GC_PR_BGD,cv2.GC_PR_FGD,或者直接输入 0,1,2,3 也行。 rect :包含前景的矩形,格式为

    2024年02月12日
    浏览(31)
  • Python-OpenCV中的图像处理-GrabCut算法交互式前景提取

    cv2.grabCut(img: Mat, mask: typing.Optional[Mat], rect, bgdModel, fgdModel, iterCount, mode=…) img:输入图像 mask:掩模图像,用来确定那些区域是背景,前景,可能是前景/背景等。 可以设置为: cv2.GC_BGD,cv2.GC_FGD,cv2.GC_PR_BGD,cv2.GC_PR_FGD,或者直接输入 0,1,2,3 也行。 rect :包含前景的矩形,格式为

    2024年02月13日
    浏览(34)
  • Python图像处理:1.插值、频域变换与对比度增强

    7.图像的插值 (1)原理介绍 下面对比三种插值方法,分别是最近邻插值法、双线性插值法、卷积插值法,三种方法的前提和特点、优缺点、适用场景如下: 最近邻插值(Nearest Neighbor Interpolation) : 前提与特点 :这是最简单的插值方法,不考虑相邻像素的影响,只取最近的像

    2024年03月13日
    浏览(37)
  • 视频图像处理算法opencv在esp32及esp32s3上面的移植,也可以移植openmv

    opencv 在 esp32 及 esp32s3 上面的移植 Opencv 简介       OpenCV 是一个基于 Apache2.0 许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在 Linux 、 Windows 、 Android 和 Mac OS 操作系统上,它轻量级而且高效—— 由一系列 C 函数和少量 C++ 类构成,同时提供了 Python 、 R

    2024年02月09日
    浏览(30)
  • 基于OpenCV的传统视觉应用 -- OpenCV图像处理 图像模糊处理 图像锐化处理

    图像处理是用计算机对图像进行分析,以获取所需结果的过程,又称为影像处理。图像处理一般是指数字图像的处理。数字图像是用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。 均值滤波是指任意一点的像素

    2024年02月07日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包