opencv2 矩阵方式 resiz…
来源:互联网 发布:opencv图像处理算法 编辑:程序博客网 时间:2024/06/06 14:28
最近学习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 矩阵方式 resiz…
- opencv2 矩阵方式 resiz…
- opencv2.4.1 没有 Featu…
- windows7 VS2010 OpenCV2.2.…
- matlab eig() 计算矩阵…
- linux 下 opencv2.0 的编译与安装 …
- linux 下 opencv2.0 的编译与安装 …
- ACM: 矩阵建模 数论题 poj 3735 (…
- [改] vs2010+win7x64+opencv2…
- Win7、VS2008、OpenCV2.3.1 …
- Win7、VS2008、OpenCV2.3.1 …
- opencv2.4.2 配置
- ORACLE 连接方式 NESTED LOOP、HAS…
- ACM: 矩阵链乘 动态规划题 poj 165…
- ACM: 矩阵快速幂运算 数论题 poj 3…
- 集线器 交换机 路由器 网桥 …
- matlab rref函数 将矩阵…
- MATLAB(7) 矩阵的相…
- openCV 之 读取视频
- 各种排序算法的稳定性
- opencv2 矩阵方式 resiz…
- openCV 之 读取视频
- Kotlin学习笔记——使用databinding
- opencv2 矩阵方式 resiz…
- 延展问题=基本问题+特殊情况
- gcc编译器
- 网页html
- VRML基础语法
- 我最常用的几个VIM命令
- 使用pyinstaller打包pyqt5出错问题解决
- libc.so.6: version `GLIBC_2.14' not found
- C++动态分配二维数组(转载)