场景:
根据某需求得到大量宽高不一的灰度图,形式为:
[
[1,2,3,4]
[5,6,7,8]
[9,10,11,12]
]
的二维数组。
需要对其进行标准化转换为固定大小的尺寸,在此使用双三次插值算法实现,对网上的代码略作修改:
原博客:
双三次插值算法详解 含python实现
在这里感谢这位大佬。

from PIL import Image
import numpy as np
import math# 产生16个像素点不同的权重
def BiBubic(x):x = abs(x)if x <= 1:return 1 - 2 * (x ** 2) + (x ** 3)elif x < 2:return 4 - 8 * x + 5 * (x ** 2) - (x ** 3)else:return 0
# 双三次插值算法
# dstH为目标图像的高,dstW为目标图像的宽
def BiCubic_interpolation(img, dstH, dstW):scrH, scrW = img.shape# img=np.pad(img,((1,3),(1,3),(0,0)),'constant')retimg = np.zeros((dstH, dstW, 3), dtype=np.uint8)for i in range(dstH):for j in range(dstW):scrx = i * (scrH / dstH)scry = j * (scrW / dstW)x = math.floor(scrx)y = math.floor(scry)u = scrx - xv = scry - ytmp = 0for ii in range(-1, 2):for jj in range(-1, 2):if x + ii < 0 or y + jj < 0 or x + ii >= scrH or y + jj >= scrW:continuetmp += img[x + ii, y + jj] * BiBubic(ii - u) * BiBubic(jj - v)retimg[i, j] = np.clip(tmp, 0, 255)return retimgim_path = 'F:/42.0.png'
image = np.array(Image.open(im_path))
print(image.shape[1])
# 举例:将图片统一转换为256*256的图片
image2 = BiCubic_interpolation(image, 256, 256)
image2 = Image.fromarray(image2.astype('uint8')).convert('RGB')
image2.save('F:/BiCubic_interpolation.jpg')

python3实现灰度图的双三次插值算法缩放相关推荐

  1. 【老生谈算法】matlab实现灰度图处理源码——灰度图处理

    matlab灰度图的处理源码 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]matlab灰度图的处理程序.doc 2.算法详 ...

  2. 使用K-means算法聚类灰度图

    github数据集: 智能算法的课件和参考资料以及实验代码 我们可以用k-means算法将灰度图分成N个梯度 我们知道,一般的彩色图像指的是在RGB颜色空间下的图像,这样的图像三个通道分别是R(red ...

  3. PS 图像黑白调整算法(彩色图转灰度图)(VC++)

    本篇文章参考了万水千山的博客PS 图像调整算法--黑白和阿发伯的博客C++图像处理 -- 图像颜色混合(上) 黑白调整 Photoshop CS的图像黑白调整功能,是通过对红.黄.绿.青.蓝和洋红等6 ...

  4. C++ opencv调整灰度图亮度和对比度的简单算法

    算法目的: 将灰度图的亮度设置为原始图片的bright倍, 对比度设为原始图片的contrast倍 算法原理: 1. 首先计算原始图片的像素平均值m 2. 将每个像素点的像素值p减去m得到d (d=p ...

  5. Python实现数字图像处理经典算法之256色转灰度图

    算法介绍 256色转灰度图是数字图像处理经典算法中最简单的算法之一 1.彩色数字图像中的颜色有红.绿.蓝三种颜色混合而成,对应的像素颜色通道就是RGB(R,G,B),R.G.B数值共有256个数值,也 ...

  6. matlab将图片转换为灰度图_视频处理之灰度图

    欲观原文,请君移步​mp.weixin.qq.com 灰度图概念 灰度图 ,Gray Scale Image 或是Grey Scale Image,又称灰阶图.把白色与黑色之间按对数关系分为若干等级, ...

  7. 学习RGB配色,灰度图

    原文: http://www.16xx8.com/photoshop/jiaocheng/2015/139574.html 从RGB色转为灰度色算法: 一.基础  对于彩色转灰度,有一个很著名的心理学 ...

  8. 图像灰度图,直方图,像素通道问题

    1.图像直方图概述   直方图广泛运用于很多计算机视觉运用当中,通过标记帧与帧之间显著的边缘和颜色的统计变化,来检测视频中场景的变化.在每个兴趣点设置一个有相近特征的直方图所构成 "标签&q ...

  9. 怎么用python编程实现二次差值多项式_双三次插值算法详解 含python实现

    一. 图像双三次插值算法原理: 假设源图像 A 大小为 m*n ,缩放后的目标图像 B 的大小为 M*N .那么根据比例我们可以得到 B(X,Y) 在 A 上的对应坐标为 A(x,y) = A( X* ...

  10. 图像常用的插值算法:最近邻插值、双线性插值和双三次插值算法

    图像常用的插值算法 最近邻插值算法 双线性插值算法 双三次插值(bicubic)算法 三种插值算法的优缺点 插值算法是图像缩放中的一项基本且重要的算法:在图像缩放中,输出图像像素点坐标可能对应输入图像 ...

最新文章

  1. 使用阿里云配置管理ACM实现zookeeper依赖服务的透明Failover迁移
  2. Unity 游戏开发技巧集锦之创建自发光材质
  3. python打开界面是什么样的-python学习笔记(图形用户界面)
  4. imx51-linux的cpuinfo之分析
  5. dtoj#4178. 配对(pair)
  6. 成功解决WARNING:tensorflow:From :read_data_sets (from tensorflow.contrib.learn.python.learn.
  7. 玩转webpack(一)下篇:webpack的基本架构和构建流程
  8. 组会PPT20200910《大工HPT放电结果错误剖析》
  9. 解决yarn报错:Found incompatible module (yarn config set ignore-engines true)
  10. Storm程序的并发机制原理总结
  11. 使用acme.sh签发Let's Encrypt的免费数字证书
  12. 解决python最新版无法安装TensorFlow,导入TensorFlow
  13. 单播 广播 组播_组播概念3
  14. c++程序设计原理与实践 第二十四章部分答案
  15. “SD卡已损坏。可能需要重新格式化卡” 解决办法!
  16. matlab对一个数组进行补零,matlab 输出 整数 补0
  17. thinkpad x270 加装内置4G模块实现移动上网的记录
  18. 四旋翼自主飞行器探测跟踪系统
  19. MATLAB加入螺旋相位板调制,螺旋相位板原理及使用手册
  20. 实验详解OSPF的几类LSA、FA转发规则(思科设备)

热门文章

  1. CMYK,RGB颜色对照表
  2. “知识资源细颗粒度建设和标签标引”规则规范心得说明
  3. CodeMeter 软件加密技术
  4. python入门之后须掌握的知识点(excel文件处理+邮件发送+实战:批量化发工资条)【二】
  5. 计算机无法识别打印机usb,win10电脑不识别打印机usb设备怎么回事_win10无法识别usb打印机如何处理-win7之家...
  6. 内置式永磁同步电机IPMSM,基于虚拟信号注入法最大转矩电流比MTPA控制仿真模型
  7. 深入理解GBDT回归算法
  8. 形式语言与自动机总结笔记
  9. stm32单片机驱动L298N模块
  10. 51单片机之程序下载不进单片机