双线性插值
参考链接:
[1]https://gitee.com/angerial/opencv/blob/master/interpolation/bilinear_interpolation.py
[2]链接: 双线性插值详解
[3]双线性插值python实现

代码:

import cv2
import numpy as npdef bilinear_interpolation(img, out_dim):src_h, src_w, channel = img.shape  # 原图片的高、宽、通道数dst_h, dst_w = out_dim[1], out_dim[0]  # 输出图片的高、宽print('src_h,src_w=', src_h, src_w)print('dst_h,dst_w=', dst_h, dst_w)if src_h == dst_h and src_w == dst_w:return img.copy()dst_img = np.zeros((dst_h, dst_w, 3), dtype=np.uint8)scale_x, scale_y = float(src_w) / dst_w, float(src_h) / dst_hfor i in range(3):  # 指定 通道数,对channel循环for dst_y in range(dst_h):  # 指定 高,对height循环for dst_x in range(dst_w):  # 指定 宽,对width循环# 源图像和目标图像几何中心的对齐# src_x = (dst_x + 0.5) * srcWidth/dstWidth - 0.5# src_y = (dst_y + 0.5) * srcHeight/dstHeight - 0.5src_x = (dst_x + 0.5) * scale_x - 0.5src_y = (dst_y + 0.5) * scale_y - 0.5# 计算在源图上四个近邻点的位置src_x0 = int(np.floor(src_x))src_y0 = int(np.floor(src_y))src_x1 = min(src_x0 + 1, src_w - 1)src_y1 = min(src_y0 + 1, src_h - 1)# 双线性插值temp0 = (src_x1 - src_x) * img[src_y0, src_x0, i] + (src_x - src_x0) * img[src_y0, src_x1, i]temp1 = (src_x1 - src_x) * img[src_y1, src_x0, i] + (src_x - src_x0) * img[src_y1, src_x1, i]dst_img[dst_y, dst_x, i] = int((src_y1 - src_y) * temp0 + (src_y - src_y0) * temp1)return dst_imgimg = cv2.imread('C:\\Users\\Administrator\\Desktop\\tufen_0137.jpg')
dst = bilinear_interpolation(img, (500, 500))
cv2.imshow("blinear", dst)
cv2.waitKey()

双线性插值的python实现相关推荐

  1. python尺与米的转换_opencv-python-学习笔记九(图像几何转换)

    opencv提供了2个转换函数,可以对图像进行任意转换. cv.warpAffine和cv.warpPerspective.第一种采取2*3的矩阵作为输入.第二种采取3*3的矩阵作为输入. 1.缩放 ...

  2. [面经整理] 机器/深度学习补充篇

    文章目录 ~~~~~~~~传统图像处理~~~~~~~~ 介绍canny边缘检测算法 1. 图像降噪 简单易懂的高斯滤波 2. 计算图像梯度 图像梯度的基本原理 sobel算子 3.非极大值抑制NMS ...

  3. 数字图像中的数码变焦实现方法

    数码变焦的实现方法有多种,常见的包括基于插值算法的数码变焦和基于金字塔算法的数码变焦. 1. 基于插值算法的数码变焦 基于插值算法的数码变焦是最简单的数码变焦方法之一.它通过对原始图像进行插值处理,生 ...

  4. (二)双线性插值python实现

    这里写目录标题 (一)原始图像 (二)双线性插值原理 (三)python实现 1. 安装库 2. python程序编写 3. 效果 4. 工程文件 (一)原始图像 (二)双线性插值原理 一般情况下我们 ...

  5. Python双线性插值和双三次插值

    文章目录 python二维数组的插值 基本原理 python二维数组的插值 通过scipy.interpolate中的griddata可以进行针对坐标网格的二维插值,其调用方法为 griddata(p ...

  6. python使用双线性插值计算网格内数据

    最近在处理再分析资料网格数据时,需要用到插值方法,双线性插值速度比较快,所以考虑双线性插值方法. 双线性插值,故名思义就是在x和y方向分别进行线性插值.双线性插值一般用于图像处理,对一个个像素块进行线 ...

  7. 第2章 Python 数字图像处理(DIP) --数字图像基础3 - 图像内插 - 最近邻内插 - 双线性插值 - 双三次内插 - 图像放大

    目录 图像内插 放大图像 图像内插 内插通常在图像放大.缩小.旋转和几何校正等任务中使用.内插并用它来调整图像的大小(缩小和放大),缩小和放大基本上采用图像重取样方法 最近邻内插,这种方法将原图像中最 ...

  8. python绘制等值线图_Python/Matplotlib双线性插值等值线图

    我想绘制一个二维数据图,其中的值是由双线性插值确定的.作为初步测试,我决定只使用维基百科页面上的示例: http://en.wikipedia.org/wiki/File:Bilininterp.pn ...

  9. 使用Python,OpenCV缩放照片(忽略宽高比,保持宽高比)

    使用Python,OpenCV缩放照片(忽略宽高比,保持宽高比) 1. 效果图 1.1 保持宽高比效果图 1.2 忽略宽高比效果图 1.3 opencv各插值效果图 2. 原理 3. 源码 参考 这篇 ...

最新文章

  1. php变量定义的位置,php变量一般放在哪个位置
  2. [Java] 02 String的常用方法
  3. C语言socket accept()函数(提取出所监听套接字的等待连接队列中第一个连接请求,创建一个新的套接字,并返回指向该套接字的文件描述符)
  4. 数学-矩阵计算(1)矩阵和向量的求导法则
  5. 3144: [Hnoi2013]切糕
  6. 交钱赎“人”!B站500万粉UP主被黑客勒索,腾讯都表示无解
  7. PLSA隐变量主题模型的公式推导解惑
  8. 用cmd命令简单创建oracle 数据库、用户和表空间
  9. java 中的LongAdder
  10. macOS Monterey Finder 的新功能
  11. mySQL首行缩进快捷键_word段首如何缩进两个字符
  12. 【前端实战项目】手把手教你做出小米商城官网(HTML+CSS)
  13. C# 工具类分享(7~14)
  14. pip使用豆瓣源进行安装下载
  15. 颜色恒常性 Retinex
  16. 算法:URL短地址压缩算法-短网址映射。
  17. android 横竖屏幕切换
  18. 关于恢复RAID数据的数据恢复软件推荐
  19. dean edward大神的跨浏览器addEvent事件
  20. 如何做目录——目录的生成?

热门文章

  1. The Django Book 第一章【Django介绍】
  2. 岗位竞聘报告PPT模板
  3. carbondata使用笔记
  4. 新版Remix界面使用教程
  5. TTL,Mipi, LVDS和EDP接口区别
  6. html5地图编辑器,XTranslator Map Editor(地图编辑器)
  7. 解决各个浏览器文件下载出现文件名中文乱码问题
  8. Materials - 使用Substance Designer制作哥特式花纹
  9. 用C#实现控制台进度条
  10. 西门子PLC与昆仑通态触摸屏恒压供水程序,使用ABB变频器4 85接口通过Modbus协议进行通讯和控制