前言

  有时会碰到一张图片太大了,想将它缩小。本文将讲解一个很好用的函数解决这个问题。

图像尺寸调整函数 cvResize()

 // 图像尺寸调整函数
void Resize (
const CvArr * src,            // 待处理图像
CvArr * dst,              // 处理后图像
int interpolation = CV_LINTER_LINTER //插值方法
)

  在调用此函数前,需要定制好处理后图像的格式,再将其内存块地址传入第二个参数;对于第三个参数可暂时不去理会,使用默认参数即可,它的作用是提供一种让像素点发现图像缩放后其对应点的( 插值 )方法。

代码示例

  下面的程序将原来图像的尺寸缩短一半:

 // 此头文件包含图像IO函数的声明
#include "highgui.h"
// 此头文件包含基本的图像处理函数和高级计算机视觉算法
#include "cv.h" int main (void) { // 将D盘目录下名为" 1.jpg "的图像加载至内存并获得一个指向该图像内存块的指针img
IplImage * img = cvLoadImage ("D:\\1.jpg"); // 创建一个窗口显示调整前的图像
cvNamedWindow ("处理前", CV_WINDOW_AUTOSIZE); // 将图像装载进窗口并显示此窗口
cvShowImage ("处理前", img); // 创建一个新的图像内存块,以存放调整后的结果。
IplImage * out = cvCreateImage (
cvSize (img->height/, img->width/),
img->depth,
img->nChannels
); // 图像尺寸调整函数。
cvResize (
img,
out
); // 创建一个窗口显示调整前的图像
cvNamedWindow ("处理后", CV_WINDOW_AUTOSIZE); // 将图像装载进窗口并显示此窗口
cvShowImage ("处理后", out); // 该函数的参数为 0 时,程序将等待用户触发一个按键操作。
// 若参数为正整数,则程序将暂停该整数个毫秒单位直至用户有任何按键。
cvWaitKey (); // 释放图像内存块
cvReleaseImage (&img);
cvReleaseImage (&out); // 关闭窗口同时释放窗口内存块
cvDestroyWindow ("处理前");
cvDestroyWindow ("处理后"); return ;
}

运行结果

  

  

小结

  可以发现,收缩后的图像效果不好。

  其实图像的伸缩变化没有想象的那么简单,具体的改进方法将会在以后的文章中介绍。

最新文章

  1. 渗透测试-信息收集-c段收集
  2. android-plugmgr源代码分析
  3. MATLAB数字图像处理基础
  4. HDU5769 Substring(后缀数组)
  5. Nginx_HTTP 499 状态码 nginx下 499错误
  6. 运用Ntop监控网络流量(视频Demo)
  7. C++中使用stringstream进行类型转换操作
  8. 前端代码组织优化--小demo(进阶你的思路)
  9. 数字是否可以被3和5同时整除,use if and % (21.9.2017)
  10. Jenkins 改成中文语言显示
  11. AbstractRoutingDataSource 实现动态切换数据源
  12. Python中syncio和aiohttp
  13. python的数据驱动
  14. UITableView滚动优化(RunLoop)
  15. 添加字体与字符集locale支持(基于busybox文件系统)
  16. Swift语言精要-闭包(Closure)
  17. iKcamp新书上市《Koa与Node.js开发实战》
  18. C# 证书打印《六》
  19. SpringIDE的安装
  20. HTML一(简介)

热门文章

  1. [LeetCode] Min Stack 栈
  2. 快速排序Quick sort(转)
  3. javascript 数据类型的一些方法总结
  4. Java发送邮件--web.xml配置,Java代码配置
  5. Django之model F/Q以及多对多操作
  6. MySQL的INFORMATION_SCHEMA数据库简介
  7. java反射和代理
  8. 基于WPF系统框架设计(8)-PasswordBox传值到ViewMode
  9. html5扫面二维码逻辑
  10. RxJava Android(RxAndroid) 开发全家桶