双线性插值的python实现
双线性插值
参考链接:
[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实现相关推荐
- python尺与米的转换_opencv-python-学习笔记九(图像几何转换)
opencv提供了2个转换函数,可以对图像进行任意转换. cv.warpAffine和cv.warpPerspective.第一种采取2*3的矩阵作为输入.第二种采取3*3的矩阵作为输入. 1.缩放 ...
- [面经整理] 机器/深度学习补充篇
文章目录 ~~~~~~~~传统图像处理~~~~~~~~ 介绍canny边缘检测算法 1. 图像降噪 简单易懂的高斯滤波 2. 计算图像梯度 图像梯度的基本原理 sobel算子 3.非极大值抑制NMS ...
- 数字图像中的数码变焦实现方法
数码变焦的实现方法有多种,常见的包括基于插值算法的数码变焦和基于金字塔算法的数码变焦. 1. 基于插值算法的数码变焦 基于插值算法的数码变焦是最简单的数码变焦方法之一.它通过对原始图像进行插值处理,生 ...
- (二)双线性插值python实现
这里写目录标题 (一)原始图像 (二)双线性插值原理 (三)python实现 1. 安装库 2. python程序编写 3. 效果 4. 工程文件 (一)原始图像 (二)双线性插值原理 一般情况下我们 ...
- Python双线性插值和双三次插值
文章目录 python二维数组的插值 基本原理 python二维数组的插值 通过scipy.interpolate中的griddata可以进行针对坐标网格的二维插值,其调用方法为 griddata(p ...
- python使用双线性插值计算网格内数据
最近在处理再分析资料网格数据时,需要用到插值方法,双线性插值速度比较快,所以考虑双线性插值方法. 双线性插值,故名思义就是在x和y方向分别进行线性插值.双线性插值一般用于图像处理,对一个个像素块进行线 ...
- 第2章 Python 数字图像处理(DIP) --数字图像基础3 - 图像内插 - 最近邻内插 - 双线性插值 - 双三次内插 - 图像放大
目录 图像内插 放大图像 图像内插 内插通常在图像放大.缩小.旋转和几何校正等任务中使用.内插并用它来调整图像的大小(缩小和放大),缩小和放大基本上采用图像重取样方法 最近邻内插,这种方法将原图像中最 ...
- python绘制等值线图_Python/Matplotlib双线性插值等值线图
我想绘制一个二维数据图,其中的值是由双线性插值确定的.作为初步测试,我决定只使用维基百科页面上的示例: http://en.wikipedia.org/wiki/File:Bilininterp.pn ...
- 使用Python,OpenCV缩放照片(忽略宽高比,保持宽高比)
使用Python,OpenCV缩放照片(忽略宽高比,保持宽高比) 1. 效果图 1.1 保持宽高比效果图 1.2 忽略宽高比效果图 1.3 opencv各插值效果图 2. 原理 3. 源码 参考 这篇 ...
最新文章
- php变量定义的位置,php变量一般放在哪个位置
- [Java] 02 String的常用方法
- C语言socket accept()函数(提取出所监听套接字的等待连接队列中第一个连接请求,创建一个新的套接字,并返回指向该套接字的文件描述符)
- 数学-矩阵计算(1)矩阵和向量的求导法则
- 3144: [Hnoi2013]切糕
- 交钱赎“人”!B站500万粉UP主被黑客勒索,腾讯都表示无解
- PLSA隐变量主题模型的公式推导解惑
- 用cmd命令简单创建oracle 数据库、用户和表空间
- java 中的LongAdder
- macOS Monterey Finder 的新功能
- mySQL首行缩进快捷键_word段首如何缩进两个字符
- 【前端实战项目】手把手教你做出小米商城官网(HTML+CSS)
- C# 工具类分享(7~14)
- pip使用豆瓣源进行安装下载
- 颜色恒常性 Retinex
- 算法:URL短地址压缩算法-短网址映射。
- android 横竖屏幕切换
- 关于恢复RAID数据的数据恢复软件推荐
- dean edward大神的跨浏览器addEvent事件
- 如何做目录——目录的生成?