opencv2 矩阵方式 resize图像缩放代码(转载)
http://blog.sina.com.cn/s/blog_74a459380101r0yx.html
分类: Opencv_Function |
最近学习opencv的时候遇到的一些技术问题,拿出来分享一下。opencv1和opencv2最大的区别就是c++支持,这使得网上有些资料是opencv1的c语言写的,而有些人喜欢c++,当然接口函数也就不同了。下面是一个c++的opencv2接口的图像缩放代码。
double scale=0.5; //设置缩放倍数
string imageurl = "F:/opencv/samples/cpp/baboon.jpg";
Mat image =imread(imageurl);Â
//缩放
Size dsize = Size(image.cols*scale,image.rows*scale);
Mat image2 = Mat(dsize,CV_32S);
resize(image, image2,dsize);
首先定义scale变量,图片要缩放的倍数。
然后用Mat函数创建image矩阵,并加载图像。
Size函数是设置图像框架大小
resize函数调整图片大小。
各函数的要点:
CV::Mat
在这里我用的是Mat函数,而网上很多代码是cvMat函数,这个c和c++2个接口,当然c/c++混合使用也没出错,只是为了代码规范,我vc开发c++版本的就尽可能全部用c++接口。
很多人会说IPLImage这个函数都可以加载图片啦,为什么非要用cv::Mat?其实一开始学opencv的时候我也很疑惑,后来查资料看懂了,其一在c语言版本中cvmat和iplImage是一个继承的父子关系,但是最主要的原因就是cv::mat有矩阵功能,学过图像处理的朋友就知道,图片其实就是一些数字矩阵,上面有每个像素点的RGB的值,而IplImage只是简单的读取和加载图片的一些属性功能,比如宽度高度、图像大小等等,唯独没有矩阵功能。
当然用IplImage加载图像后也同样可以做图片缩放,而且函数更加简洁明了。但为什么我不用呢?主要原因是因为我当时写的一个小程序需要计算矩阵,而刚好矩阵这种方式的缩放网上的资料非常少。
如果你还想多了解cvmat和IplImage的功能,可以搜索opencv的doc文档,上面有2个函数反馈的各种值。
CV::Size
Cv::Size结构表示矩形尺寸的结构,结构体中分别定义了矩形的宽度和高度。顾名思义这个是定义一个矩阵的宽度和高度的。而定义之后的宽带和高度直接用在cv::Mat中,用cv::Mat来创建一个固定大小的矩阵。代码中就是image2的矩阵了。
CV::Resize
resize(image, image2,dsize);从代码中很容易看出这个resize的函数的用法了,第一个参数就是输入原始图像,第二个参数就是输出新图像,第三个参数就是图像的大小了。
opencv2 矩阵方式 resize图像缩放代码(转载)的更多相关文章
- OpenCV计算机视觉学习(11)——图像空间几何变换(图像缩放,图像旋转,图像翻转,图像平移,仿射变换,镜像变换)
如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 图像 ...
- 实现基于最近邻内插和双线性内插的图像缩放C++实现
平时我们写图像处理的代码时,如果需要缩放图片,我们都是直接调用图像库的resize函数来完成图像的缩放.作为一个机器视觉或者图像处理算法的工作者,图像缩放代码的实现应该是必须掌握的.在众多图像缩放算法 ...
- OpenCV2:第二章 创建图像并显示
一.简介 相当于在PS中,新建一个画布 二.CvMat类/LPLImage和CvMat结构体 参考: OpenCV2:第一章 图像表示 三.create() Mat m(2,2,CV_8UC3); m ...
- opencv学习笔记——图像缩放函数resize
opencv提供了一种图像缩放函数 功能:实现对输入图像缩放到指定大小 函数原型: void cv::resize ( InputArray src, OutputArray dst, Size ds ...
- [Android] 使用Matrix矩阵类对图像进行缩放、旋转、对照度、亮度处理
前一篇文章讲述了Android拍照.截图.保存并显示在ImageView控件中,该篇文章继续讲述Android图像处理技术,主要操作包含:通过打开相冊里的图片,使用Matrix对图像进行缩放. ...
- 图像旋转与图像缩放及Matlab代码实现
本周的作业是自己通过公式编写图像旋转与缩放的代码.今天先通过调用函数的方法来实现. 图像的旋转: A=imread('2.jpg'); J=imrotate(A, 30); subplot(1,2,1 ...
- IOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry) 转载
http://blog.csdn.net/he_jiabin/article/details/48677911 随着iPhone6/6+设备的上市,如何让手头上的APP适配多种机型多种屏幕尺寸变得尤为 ...
- opencv3 图像处理(一)图像缩放( python与c++ 实现)
opencv3 图像处理 之 图像缩放( python与c++实现 ) 一. 主要函数介绍 1) 图像大小变换 Resize () 原型: void Resize(const CvArr* src,C ...
- 邻近双线性插值图像缩放的Python实现
最近在查找有关图像缩放之类的算法,因工作中需要用到诸如此类的图像处理算法就在网上了解了一下相关算法,以及其原理,并用Python实现,且亲自验证过,在次与大家分享. 声明:本文代码示例针对的是plan ...
随机推荐
- 37.看下图实现如下接口和类,并完成Adventure中的主方法。
//接口Swim package jieKou; public interface ICanswim { void Swim(); } //接口Fly package jieKou; public i ...
- php 提交表单
滴答…滴答…的雨,欢迎大家光临我的博客. 学习是快乐的,教育是枯燥的. 博客园 首页 博问 闪存 联系 订阅 管理 随笔-58 评论-2017 文章-5 trackba ...
- mysql无法启动,一直处于启动状态解决【Mac osx 】
最近,遇到一个问题,就是mac 使用homebrew 安装了mysql,今天使用mysql.server start,mysql无法启动了,restart还找不到pid,说明服务并没有启动! 错误如下 ...
- RIDE的使用
在RIDE中,CTRL + R 自动打开report.html , CTRL + L 自动打开 log.html
- python实现邮件发送完整代码(带附件发送方式)
实例一:利用SMTP与EMAIL实现邮件发送,带附件(完整代码) __author__ = 'Administrator'#coding=gb2312 from email.Header import ...
- 线程中sleep方法和wait方法有什么区别?
如果你没有接触过java的多线程,那么多对于这两个方法可能有点陌生,看名字好像这两个方法是差不多的,但是实际上面差别好大. 首先我们看一下官方的API Sleep(sleep有两个方法,另一个方法传递 ...
- Cv图像处理
http://wiki.opencv.org.cn/index.php/Cv%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86 看看知识点,虽然是C 版本.
- Codeforces Round #364 (Div. 2) C.They Are Everywhere
C. They Are Everywhere time limit per test 2 seconds memory limit per test 256 megabytes input stand ...
- A计划
A计划 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissio ...
- OC画笔CGContextRef
1.画线 CGContextRef context = UIGraphicsGetCurrentContext();//context相当于画布 CGContextSetStrokeColorWith ...