养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

OpenCV:图像缩放操作resize,pryUp,pryDown

时间:2024-10-24 17:22:42

绪:图像的缩放操作是图像处理中基本的处理方式;OpenCV中对图像进行缩放最简单的方法是调用resize函数;另外,还有采用图像金字塔来进行图像缩放的;pryUp和pryDown函数;本文主要介绍:resize,pryUp,pryDown函数及其图像缩放的应用;

OpenCV:图像缩放操作resize,pryUp,pryDown

工具/原料

OpenCV2410

方法/步骤

1、resize()函数:可以将原图像精确擢爻充种的转化为指定尺寸的目标图像;格式:voidresize(Input帆歌达缒Arraysrc,OutputArraydst,Sizedsize,doublefx=0,doublefy=0,intinterpolation=INTER_LINEAR);参数:dsize:输出图像的大小;当dsize不为0时,即指定的图像缩放大小;当dsize为0时,缩放大小为dsize=Size(round(fx*src.cols),round(fy*src.rows))其中,fx,fy为缩放比例;【注】:dsize和fx/fy不能同时为0;

OpenCV:图像缩放操作resize,pryUp,pryDown

2、resize放大图像:若要放大图像,推绡诉诿旬荐使用CV_INTER_LINEAR双线性插值;以王者荣耀logo为例,大小为482*355芟坳葩津,进行放大示例如下:intmain(){Matimg=imread("0.jpg");imshow("原始图",img);Matdst=Mat::zeros(428,512,CV_8UC3);//我要转化为512*512大小的resize(img,dst,dst.size());imshow("尺寸调整之后",dst);waitKey(0);return0;}

OpenCV:图像缩放操作resize,pryUp,pryDown

3、resize缩小图像:要缩小图像,一般推荐使用CV_INTER_AREA插值;程序如下:intmain(){Matimg=imread("0.jpg");imshow("原始图",img);Matdst;resize(img,dst,Size(),0.5,0.5);//我长宽都变为原来的0.5倍imshow("尺寸调整之后",dst);waitKey(0);waitKey(0);return0;}

OpenCV:图像缩放操作resize,pryUp,pryDown

4、图像金字塔:图像金字塔是用来进行图像缩放的,功能和resize一样;为什么还需要学习它;因为其在卷积神经网络中会遇到这个名词;且搞图像的都得学它;什么是金字塔?下图所示,我们将一层层的图像比喻为金字塔,层级越高,则图像尺寸越小,分辨率越低;两种类型的金字塔:高斯金字塔:用于下采样,主要的图像金字塔;拉普拉斯金字塔:用于重建图像,也就是预测残差,对图像最大程度的还原;比如一副小图像重建为一幅大图像;上采样和下采样:上采样:就是图像放大,使用pryUp函数;下采样:就是图像缩小,使用pryDown函数;

OpenCV:图像缩放操作resize,pryUp,pryDown

5、pryUp上采样:图像放大格式:v艺皱麾酪oidpyrUp(InputArraysrc,OutputArraydst,const胨检馁秣Size&dstsize=Size());上采样步骤:将图像在每个方向放大为原来的两倍,新增的行和列用0填充;使用卷积核与放大的图像卷积,获得新增像素的近似值;程序如下:intmain(){Matimg=imread("0.jpg");imshow("原始图",img);Matdst;pyrUp(img,dst,Size(img.cols*2,img.rows*2));//放大一倍imshow("尺寸放大之后",dst);waitKey(0);return0;}

OpenCV:图像缩放操作resize,pryUp,pryDown

6、pryDown下采样:图像缩小格式:voidpyrDown(InputArraysrc,OutputArraydst,constSize&dstsize=Size());下采样步骤:将图像进行高斯内核卷积将所有偶数行和列去除【注】:上、下采样都存在一个严重的问题,那就是图像变模糊了,因为缩放的过程中发生了信息丢失的问题。要解决这个问题,就得看拉普拉斯金字塔了。因此,如果缩放还是采用resize函数;

OpenCV:图像缩放操作resize,pryUp,pryDown

© 一点知识