栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【OpenCV入门】调整图像大小/裁剪图像

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【OpenCV入门】调整图像大小/裁剪图像

调整图像大小-resize 函数resize

函数的定义

void resize( InputArray src, //输入图像
			 OutputArray dst,//输出图像
             Size dsize, //调整成的大小
             double fx = 0, 
             double fy = 0,
             int interpolation = INTER_LINEAR 
             );

参数解释:

  • src:输入的图像,Mat类
  • dst:输出的图像,当参数dsize不为0时,dst的大小由dsize决定;否则,它的大小由参数fx和fy决定
  • dsize:输出图像的大小,写成Size(宽,高)(单位:像素)
  • fx和fy:水平/竖直方向上的缩放比例
  • interpolation:插值方法。取值如下:
    INTER_NEAREST---------最近邻插值
    INTER_LINEAR---------双线性插值(默认设置)
    INTER_AREA---------使用像素区域关系进行重采样
    INTER_CUBIC---------4x4像素邻域的双三次插值
    INTER_LANCZOS4---------8x8像素邻域的Lanczos插值
  • 注意:参数dsize和参数(fx, fy)不能够同时为0
示例

源代码:

#include 
#include 
using namespace cv;
#ifdef _DEBUG
#pragma comment(lib,"opencv_world453d.lib")
#else
#pragma comment(lib,"opencv_world453.lib")
#endif // _DEBUG

int main()
{
    Mat img = imread("D:\My Bags\图片\Test.jpg");
    Mat outImg;
    resize(img, outImg, Size(0,0), 0.8, 0.8);//宽和高都变为原来的0.8倍
    imshow("原图", img);
    imshow("改变尺寸后", outImg);
    waitKey(0);
    return 0;
}

运行结果:

裁剪图像 Rect类

先创建一个Rect对象

Rect(int x, int y, int width, int height);

参数解释:

  • 前两个x,y:矩形左上角相对图像的坐标
  • 后两个width,height:矩形的宽和高
  • 单位都是像素,坐标轴如下图:

    图像Mat类对象(Rect 对象) 就可以返回一个裁剪了对应矩形区域的Mat类图像
示例

源代码:

#include 
#include 
using namespace cv;
#ifdef _DEBUG
#pragma comment(lib,"opencv_world453d.lib")
#else
#pragma comment(lib,"opencv_world453.lib")
#endif // _DEBUG

int main()
{
    Mat img = imread("D:\My Bags\图片\Test.jpg");
    Rect cropArea(0, 0, 150, 200);
    Mat outImg = img(cropArea);
    imshow("原图", img);
    imshow("裁剪后", outImg);
    waitKey(0);
    return 0;
}

运行结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/289759.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号