数字图像处理笔记二 - 图片缩放(最近邻插值(Nearest Neighbor interpolation))
图片缩放的两种常见算法:
最近邻域内插法(Nearest Neighbor interpolation)
双向性内插法(bilinear interpolation)
本文主要讲述最近邻插值(Nearest Neighbor interpolation算法的原理以及python实现
基本原理
最简单的图像缩放算法就是最近邻插值。顾名思义,就是将目标图像各点的像素值设为源图像中与其最近的点。算法优点在与简单、速度快。
如下图所示,一个4*4的图片缩放为8*8的图片。步骤:
1. 生成一张空白的8*8的图片,然后在缩放位置填充原始图片值(可以这么理解)
2. 在图片的未填充区域(黑色部分),填充为原有图片最近的位置的像素值。
实现代码如下:
def nearest_neighbor_resize(img, new_w, new_h):
# height and width of the input img
h, w = img.shape[0], img.shape[1]
# new image with rgb channel
ret_img = np.zeros(shape=(new_h, new_w, 3), dtype='uint8')
# scale factor
s_h, s_c = (h * 1.0) / new_h, (w * 1.0) / new_w
# insert pixel to the new img
for i in xrange(new_h):
for j in xrange(new_w):
p_x = int(j * s_c)
p_y = int(i * s_h)
ret_img[i, j] = img[p_y, p_x]
return ret_img
测试代码如下:
def test():
img_path = 'F:/nearest_neighbor.jpg'
img = cv2.imread(img_path)
ret_img = nearest_neighbor_resize(img, 222, 220)
cv2.imshow("source image", img)
cv2.imshow("after bilinear image", ret_img)
cv2.waitKey()
cv2.destroyAllWindows()
运行结果如下:
主要参考:
http://tech-algorithm.com/articles/nearest-neighbor-image-scaling/
数字图像处理笔记二 - 图片缩放(最近邻插值(Nearest Neighbor interpolation))相关推荐
- 数字图像处理(二)灰度、量化、采样
转自https://blog.csdn.net/eastmount/article/details/46010637 本文主要讲述基于VC++6.0 MFC图像处理的应用知识,主要结合自己大三所学课程 ...
- 数字图像处理笔记-02(图像空域增强技术及联合运用)
数字图像处理笔记-02(图像空域增强技术及联合运用) (一) 图像增强 1.1 基本概念 由于图像在传输或者处理过程中会引入噪声或使图像变模糊,从而降低了图像质量,甚至淹没了特 征,给分析带来了困难. ...
- 数字图像处理笔记2-nbsp;边沿检…
原文地址:数字图像处理笔记2- 边沿检测与提取,轮廓跟踪(转)作者:小草帽 7.1 边沿检测 我们给出一个模板 和一幅图象 .不难发现原图中左边暗,右边亮,中间存在着一条明显的边界.进行模板操作后的结 ...
- 数字图像处理笔记(一)——图像存储空间,分辨率,图像内插
数字图像处理笔记(一)--图像存储空间,分辨率,图像内插 本系列笔记是笔者在学习冈萨雷斯<数字图像处理>第三版时做的总结,日后看的时候方便点,如果有幸得到大家的讨论,喜上眉梢. 本节参考书 ...
- 【计算机视觉】数字图像处理(二)—— 图像数字化特征介绍
数字图像处理(二)-- 图像数字化特征介绍 前言 一.图像的数字化 数字图像的表示 图像数字化过程 1. 采样 2. 量化 3. 采样与量化的作用效果 图像数字化设备 二.数字图像处理算法的形式 基本 ...
- 什么叫做形态学图像处理_数字图像处理在二值形态学及其灰度形态学方面的应用.ppt...
您所在位置:网站首页 > 海量文档  > 计算机 > 图形图像 数字图像处理在二值形态学及其灰度形态学方面的应用.pp ...
- 最近邻分类器(Nearest Neighbor Classifier)
先从简单的方法开始说,先提一提最近邻分类器/Nearest Neighbor Classifier,不过事先申明,它和深度学习中的卷积神经网/Convolutional Neural Networks ...
- 【数字图像处理】 二.MFC单文档分割窗口显示图片
本文是讲述<数字图像处理>系列文章,继上篇讲述BMP格式图片和显示后,该篇讲述如何对单文档进行分割.主要是采用CSplitterWnd静态分割窗口显示图片等相关知识.本文主要结合自己的课程 ...
- 数字图像处理笔记(一)基础内容
基础内容 数字图像是什么,和模拟图像又有什么区别 数字图像处理 数字图像处理研究内容 数字图像处理有哪些方法 计算机图形学和数字图像处理的区别 常用的数字图像处理开发工具 数字图像 图像的数学表达 数 ...
最新文章
- 消费升级背景下零食行业发展报告_趋势丨零食行业进入4.0时代
- Mysql循环查询结果并设置排序编号
- 文本检测算法新思路:基于区域重组的文本检测
- 虚拟资源拳王公社:小白从0到1搭建个人私域流量池的实操方法,6招玩转流量裂变法
- 微软 Azure App Service 漏洞 NotLegit已存在4年,客户源代码被暴露
- DNS欺骗的艺术 | 域名劫持和网页挂马
- centos7阿里yum源报问题
- 令人吃惊,这个短信平台在这些方面居然完胜阿里云
- PS学习笔记(88天和我一起学会PS)(8/88)
- cannot set options after executing query
- 【Python 最全版(一)】—加解密、编码解码、进制转换、字符串转换
- 【python学习小案例】提高兴趣之BMI计算器
- 苹果手机浏览器下拉会闪动的解决办法
- nop sled 空操作雪橇
- 程序员--经典10道脑力题
- 【Spring】一文带你吃透基于XML的DI技术
- 〖编程初学者的自我修养 - 职业规划篇⑥〗- 好公司不等于是适合自己的公司
- Cron表达式与CronTrigger
- 一维数据中位值平均滤波法MATLAB代码
- linux内核netfilter,linux内核netfilter实现url重定向
热门文章
- Single-Shot Calibration:基于全景基础设施的多相机和多激光雷达之间的外参标定(IROS2021)...
- android小程序案例_小程序案例赏析:高质量的小程序怎么做
- OpenCv java 颜色空间(9)
- oracle创建索引---如何创建所以
- python实现获取文件列表中每个文件关键字
- NAR:查询未培养病毒基因组的综合生态和进化框架IMG/VR v3
- Microbiome:微生物所刘双江组建立人肠道微生物资源库(hGMB)
- Cell:一种用基因流定义微生物种群的反向生态学方法
- Microbiome:植物发育和氮肥共同作用下的小麦根系微生物组
- NRM: 地球上细菌和古菌的生物膜丰度