当前位置:网站首页 > 创业 > 正文

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

0 张子豪 张子豪 2025-10-12 03:38 1

绪:

图像的缩放操作是图像处置中根基的处置体例;

OpenCV中对图像进行缩放最简单的方式是挪用resize函数;

别的,还有采用图像金字塔来进行图像缩放的;

pryUp和pryDown函数;

本文本家儿要介绍:

resize,pryUp,pryDown函数及其图像缩放的应用;

东西/原料

  • OpenCV 2410

方式/步调

  1. 1

    resize()函数:

    可以将原图像切确的转化为指心猿意马尺寸的方针图像;

    格局:

    void resize(InputArray src,

    OutputArray dst,

    Size dsize,

    double fx=0,

    double fy=0,

    int interpolation=INTER_LINEAR );

    参数:

    dsize:输出图像的巨细;

    当dsize不为0时,即指心猿意马的图像缩放巨细;

    当dsize为0时,缩放巨细为dsize=Size(round(fx*src.cols),round(fy*src.rows))

    此中,fx,fy为缩放比例;

    【注】:

    dsize和fx/fy不克不及同时为0;

  2. 2

    resize放年夜图像:

    若要放年夜图像,保举利用CV_INTER_LINEAR双线性插值;

    以王者荣耀logo为例,巨细为482*355,进行放年夜

    示例如下:

    int main()

    {

           Mat img = imread("0.jpg");

           imshow("原始图", img);

     

           Mat dst = Mat::zeros(428, 512, CV_8UC3); //我要转化为512*512巨细的

           resize(img, dst, dst.size());

     

           imshow("尺寸调整之后", dst);

           waitKey(0);

           return 0;

    }

  3. 3

    resize缩小图像:

    要缩小图像,一般保举利用CV_INTER_AREA插值;

    法式如下:

    int main()

    {

           Mat img = imread("0.jpg");

           imshow("原始图", img);

     

           Mat dst;

           resize(img, dst, Size(),0.5,0.5);//我长宽都变为本来的0.5倍

     

           imshow("尺寸调整之后", dst);

           waitKey(0);

           waitKey(0);

           return 0;

    }

  4. 4

    图像金字塔:

    图像金字塔是用来进行图像缩放的,功能和resize一样;

    为什么还需要进修它;

    因为其在卷积神经收集中会碰到这个名词;

    且搞图像的都得学它;

    什么是金字塔?

    下图所示,

    我们将一层层的图像比方为金字塔,层级越高,则图像尺寸越小,分辩率越低;

     

    两种类型的金字塔:

    高斯金字塔:用于下采样,本家儿要的图像金字塔;

    拉普拉斯金字塔:用于重建图像,也就是展望残差,对图像最年夜水平的还原;

    好比一副小图像重建为一幅年夜图像;

     

    上采样和下采样:

    上采样:就是图像放年夜,利用pryUp函数;

    下采样:就是图像缩小,利用pryDown函数;

  5. 5

    pryUp上采样:图像放年夜

    格局:

    void pyrUp(InputArray src,

     OutputArray dst,

    const Size& dstsize=Size());

    上采样步调:

    ①将图像在每个偏向放年夜为本来的两倍,新增的行和列用0填充;

    ②利用卷积核与放年夜的图像卷积,获得新增像素的近似值;

    法式如下:

    int main()

    {

           Mat img = imread("0.jpg");

           imshow("原始图", img);

           Mat dst;

           pyrUp(img, dst, Size(img.cols*2, img.rows*2)); //放年夜一倍

           imshow("尺寸放年夜之后", dst);

           waitKey(0);

           return 0;

    }

  6. 6

    pryDown下采样:图像缩小

    格局:

    void pyrDown(InputArray src,

    OutputArray dst,

    const Size& dstsize=Size()); 

     

    下采样步调:

    ①将图像进行高斯内核卷积

    ②将所有偶数行和列去除

    【注】:

    上、下采样都存在一个严重的问题,那就是图像变恍惚了,因为缩放的过程中发生了信息丢掉的问题。要解决这个问题,就得看拉普拉斯金字塔了。

    是以,若是缩放仍是采用resize函数;

注重事项

  • resize()函数: 可以将原图像切确的转化为指心猿意马尺寸的方针图像;
  • pryDown下采样:图像缩小,图像变恍惚;
  • pryUp上采样:图像放年夜,图像变恍惚

来源:百闻(微信/QQ号:9397569),转载请保留出处和链接!


本文链接:https://www.ibaiwen.com/web/235767.html

张子豪

张子豪

TA很懒,啥都没写...

@百闻娱乐 本站部分内容转自互联网,若有侵权等问题请及时与本站联系,我们将在第一时间删除处理。 | 粤ICP备2024343649号 | (地图