调整图像的尺寸 - cvResize() 函数实现
前言
有时会碰到一张图片太大了,想将它缩小。本文将讲解一个很好用的函数解决这个问题。
图像尺寸调整函数 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 ;
}
运行结果


小结
可以发现,收缩后的图像效果不好。
其实图像的伸缩变化没有想象的那么简单,具体的改进方法将会在以后的文章中介绍。
调整图像的尺寸 - cvResize() 函数实现的更多相关文章
- C#中如何调整图像大小
在本篇文章中,我将介绍如何在C#中来调整你想要的图像大小.要实现这一目标,我们可以采取以下几个步骤: 1.首先要获取你想要调整大小的图像: string path = Server.MapPath(& ...
- [译]Android调整图像大小的一些方法
翻译自 某大神在Stack Overflow里的自问自答 (一般我们将Bitmap翻译为位图,但为了更好理解,在本文中我将它翻译成图像): 我们在开发的时候,经常需要从服务器中加载图像到客户端中,但有 ...
- CFormView动态调整对话框的尺寸和调整比例控制的部署
基于单个文件CFormView动态调整对话框的尺寸和调整比例控制的部署 假设你正在开发一个程序基于单个文件,使用CFormView基类来实现多种形式展示,那么,这个文件可能会给你一点帮助. 一.实现对 ...
- 调整图像的灰度级数C++实现
图像灰度级数我们见得最多的就是256了,如果想调整它的灰度级数,我们可以使用图像库的imadjust函数来作出调整,比如讲256个灰度级变成2个灰度级(也就是二值图了).再举一个例子,原来一幅256个 ...
- OpenCV --- 修改图像的对比度、亮度 、RGB转Gray图像、修改图像的尺寸
#include <opencv2/core.hpp> #include <opencv2/imgcodecs.hpp> #include <opencv2/highgu ...
- (opencv08)cv.resize()调整图像大小
(opencv08)cv.resize()调整图像大小 img = cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=N ...
- 如何在 HTML 中调整图像大小?
了解在 HTML 中调整图像大小的不同技术.何时应避免在浏览器端调整大小,以及在 Web 上操作和提供图像的正确方法. 如果您的图像不适合布局,您可以在 HTML 中调整其大小.在 HTML 中调整图 ...
- JAVA代码根据经纬度范围计算WGS84与谷歌全球墨卡托包含的切片数目与拼接图像像素尺寸
根据项目需求编写的代码. 适用场景:在网络地图上,比如天地图与谷歌地图,用户用鼠标在地图上拉一个矩形框,希望下载该矩形框内某一层级的瓦片数据,并将所有瓦片拼接成一个完整的,包含地理坐标的tif图像. ...
- 卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习)
分享一些公式计算张量(图像)的尺寸,以及卷积神经网络(CNN)中层参数的计算. 以AlexNet网络为例,以下是该网络的参数结构图. AlexNet网络的层结构如下: 1.Input: 图 ...
随机推荐
- [LeetCode] Minimum Depth of Binary Tree 二叉树最小深度
Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...
- HttpClient 简介与使用
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的 URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而 ...
- 编译程序加不加 -lpthread 的区别【转】
转自:http://www.cnblogs.com/Swartz/articles/3939382.html 作者:Lokki 出处:http://www.cnblogs.com/Swartz/ 欢迎 ...
- python操作word、ppt的详解
python使用win32com的心得 python可以使用一个第三方库叫做win32com达到操作com的目的, 我是安装了ActivePython的第三方库,从官网下载了安装包,该第三方库几乎 ...
- pip 安装时报错Double requirement given: numpy==1.12.1....
使用pip install -r requirements.txt 命令批量安装模块时,报错: Double requirement given: numpy==1.12.1 from https:/ ...
- Python学习杂记_9_集合操作
集合集合是由花括号括起来的一组数据,特点是“数据不重复”,“无序”,“类型不统一”.其中数据不重复是它最重要的特点,常常用于“去重”操作,Set(list)方法可以把列表强制转换成集合. 集合的一些操 ...
- jenkins 中 violation使用pylint
在jenkins中无法打开源码问题: 1. 在 Report Violations的 Source encoding 设置为 项目文件的编码, 如: utf-8. 缺省是 default. 2. 在 ...
- 2014年国内最热门的.NET开源平台
http://developer.51cto.com/art/201501/464292.htm
- Codeforces 371D Vessels (模拟)
题目链接 Vessels 这道题我做得有点稀里糊涂啊==TLE了几发之后改了一行就A了. 具体思路就是记fi为若第i个容器已经盛不下水了,那么接下来盛水的那个容器. hi为若现在要给i号容器加水,当前 ...
- localStorage.getItem
WEB应用的快速发展,是的本地存储一些数据也成为一种重要的需求,实现的方案也有很多,最普通的就是cookie了,大家也经常都用,但是cookie的缺点是显而易见的,其他的方案比如:IE6以上的user ...