概述

基于上一节“等距采样法”实现图片放大与缩小的缺点。要对其进行改进,对图像的缩小则可以用“局部均值法”,对于图像的放大则可以用“双线性插值法”。

效果如下:

2048*1536缩小为100*80时的效果

100*80放大到600*400的效果

局部均值法缩小图像

(1)计算采样间隔

设原图的大小为W*H,将其放大(缩小)为(k1*W)*(K2*H),则采样区间为

ii=1/k1; jj=1/k2;

当k1==k2时为等比例缩小;当k1!=k2时为不等比例放大(缩小);当k1<1&&k2<1时为图片放大,k1<1&&k2>1时时图片缩小

(2)求出局部子块

设原图为F(x,y)(i=1,2,……W; j=1,2,……H),缩小的图像为G(x,y)(i=1,2, ……M; j=1,2,……N,其中M=W*k1,N=H*k2),则有原图像局部子块为

f’(x,y)= f(ii*i, jj*j) …… f(ii*i + ii-1, jj*j)

…… ……

f(ii*i, jj*j+jj-1) …… f(ii*i + ii-1, jj*j+jj-1)

(3)求出缩小的图像

G(x, y) = f’(x,y)的均值

例:

缩小后的图像

例如g11=(f11 +f12 + f21 + f22)/4

算法源代码(java)

/**

* 局部均值的图像缩小

* @param img 要缩小的图像对象

* @param m 缩小后图像的宽

* @param n 缩小后图像的高

* @return 返回处理后的图像对象

*/

public static BufferedImage shrink(BufferedImage img, int m, int n) {

float k1 = (float)m/img.getWidth();

float k2 = (float)n/img.getHeight();

return shrink(img, k1, k2);

}

/**

* 局部均值的图像缩小

* @param img 要缩小的图像对象

* @param k1 要缩小的列比列

* @param k2 要缩小的行比列

* @return 返回处理后的图像对象

*/

public static BufferedImage shrink(BufferedImage img, float k1, float k2) {

if(k1 >1 || k2>1) {//如果k1 >1 || k2>1则是图片放大,不是缩小

System.err.println("this is shrink image funcation, please set k1<=1 and k2<=1!");

return null;

}

float ii = 1/k1;//采样的行间距

float jj = 1/k2; //采样的列间距

int dd = (int)(ii*jj);

//int m=0 , n=0;

int imgType = img.getType();

int w = img.getWidth();

int h = img.getHeight();

int m = (int) (k1*w);

int n = (int) (k2*h);

int[] pix = new int[w*h];

pix = img.getRGB(0, 0, w, h, pix, 0, w)

双线性内插怎么缩小_图像的放大与缩小(2)——双线性插值放大与均值缩小相关推荐

  1. android 图片放大缩小_贴在手机上的显微镜,轻松放大400倍,化身“蚁人”玩转微观世界...

    记得在漫威电影<蚁人>里,男猪脚只要穿上那套黑科技制服,按下开关,"咻"的一声就缩到蚂蚁大小,并操控蚂蚁.昆虫和自己并肩作战!!简直不要太酷! 蚁人"进入微观 ...

  2. android 图片放大缩小_几款堪称神器的图片无损放大缩小工具!

    Bigjpg Bigjpg是一款非常强大的能放大图片并使其不失真的工具. 一般来说,图片在经过PS或PhotoZoom放大之后,都会出现一定程度的损害和模糊,而Bigjpg可以让放大的图片无损. Bi ...

  3. 图像的放大与缩小(2)——双线性插值放大与均值缩小

    2019独角兽企业重金招聘Python工程师标准>>> 概述 基于上一节"等距采样法"实现图片放大与缩小的缺点.要对其进行改进,对图像的缩小则可以用"局 ...

  4. 图像的放大与缩小——双线性插值放大与均值缩小

    原文地址:http://blog.csdn.net/luoweifu/article/details/8069883 概述 基于上一节"等距采样法"实现图片放大与缩小的缺点.要对其 ...

  5. python运行界面如何缩小_如何使用Python调整图像大小

    作者|Nicholas Ballard 编译|VK 来源|Towards Data Science 可以说,每一个"使用计算机的人"都需要在某个时间点调整图像的大小.MacOS的预 ...

  6. matplotlib 鼠标拖动坐标图像/鼠标滑轮放大缩小坐标图像

    分享一下关于matplotlib 鼠标拖动坐标图像/鼠标滑轮放大缩小坐标图像的代码 先看效果: 1.鼠标左键拖动坐标图像 # 鼠标左键拖拽事件 self.lastx = 0 # 获取鼠标按下时的坐标X ...

  7. ppt矩形里面的图片怎么放大缩小_图形的放大与缩小(公开课 ppt课件).ppt

    图形的放大与缩小(公开课 ppt课件) 图形的放大或缩小 填一填 (5)一个长方形长5厘米,宽2厘米,按4:1的比放大后现在的长是( )厘米,宽是( )厘米. (6)一个长方形原来长15厘米,宽10厘 ...

  8. 【图像处理opencv】_图像几何变换

    目录 0 程序环境与所学函数 1 裁剪.放大.缩小 2 平移变换 3 错切变换 4 镜像变换 5 旋转变换 6 透视变换 7 最近邻插值.双线性插值 0 程序环境与所学函数 本章程序运行需要导入下面三 ...

  9. 基于mschart控件,绘制工控采集类曲线,可对图像进行缩放,拖动滚动条显示放大后的图像

    基于mschart控件,绘制工控采集类曲线,可对图像进行缩放,拖动滚动条显示放大后的图像,并动态显示曲线上的数值点 在工控.采集.测试类项目中经常需要对采集接收回来的数据进行图像.曲线显示,本人在项目 ...

最新文章

  1. 查找(包括顺序查找和折半查找)
  2. 如何理解卷积神经网络中的1*1卷积
  3. 机器学习(MACHINE LEARNING)MATLAB灰色预测模型
  4. daily scrum 11.1
  5. 经信局推荐 | 网易智慧企业多产品入选《杭州市支持企业远程办公助力复工防疫产品和服务目录》!...
  6. 漫游飞行_除了防打扰,手机飞行模式还有这些作用
  7. 小心中中国移动“短号集群网”的招
  8. mysql查找jdbc驱动包_查找已安装的JDBC驱动程序
  9. 玩转数据可视化之R语言ggplot2:(九)网络图绘制
  10. 华东师范大学计算机考研有多难,「华东师范大学考研详解」报录比70:1的专业,热度高到“爆炸”!...
  11. EXCEL 自动求和
  12. Chrome 浏览器翻译停服!改Hosts也失效!还有这些解决方案
  13. 综合日语第一册第八课
  14. Vue-router:二级路由跳转另一条路由下的子级
  15. 以【?nid=】的形式进行页面的跳转
  16. 魔戒世界服务器维护,我的世界魔戒 The Lord of the Rings 服务器1.7.10
  17. 仓库物品领用吉度PDA出入库盘点扫码方案
  18. 快速找出QQ群成员中不在名单内的人
  19. Nature子刊:英属哥伦比亚大学揭示植物塑造根际微生物组新机制
  20. 课堂练习4-C语言多分支结构

热门文章

  1. Java在中国 (2005.08.18 来自:《程序员》杂志)
  2. 爬虫获取淘宝等电商历史价格,分析资源网站实现本地重建(仅供个人学习)
  3. 卷积神经网络 - 车辆识别
  4. uniapp小程序button按钮去掉黑色线条
  5. postgresql 分词_使用Postgresql进行中文分词
  6. java ear_Jar/War/Ear等包的作用与区别详解
  7. windows下的dos命令快速打开应用程序
  8. JAVA综合面试题 页面的抓取 解析 保存数据库和生成HTML的页面展示
  9. supesite模块学习必备知识收藏
  10. 解除网页不能复制粘贴的限制,百度文库通用