日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenCV图像缩放函数resize()的使用

發布時間:2024/9/21 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV图像缩放函数resize()的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

OPenCV版本:4.4

IDE:VS2017

功能描述

簡述:縮放一個圖像

函數把源圖像縮放大或縮放小到指定的大小,注意初始的dst的類型或大小不用考慮,而是從src,dsize,fx, 和fy獲取。如果你想縮放src使它適配創建前的dst,你可以像下面這樣調用函數:

// 明確指定 dsize=dst.size(); fx 和 fy可以從他計算出來.resize(src, dst, dst.size(), 0, 0, interpolation);

如果要在每個方向上將圖像縮小 2 倍,你可以用以下這種方式調用函數:

// 指定 fx 和 fy 并且讓函數計算出目標圖像的大小。resize(src, dst, Size(), 0.5, 0.5, interpolation);

當縮小圖像時,一般來說最好使用INTER_AREA插值,當放大圖像時,一般來說最好使用INTER_CUBIC插值(慢),或者INTER_LINEAR(快,但是看起來還OK)。

函數原型

CV_EXPORTS_W void resize( InputArray src, OutputArray dst,Size dsize, double fx = 0, double fy = 0,int interpolation = INTER_LINEAR );

參數描述

  • 參數 src 輸入圖像

  • 參數 dst 輸出圖像, 它的大小是dsize(當他的值非零時),或者從src.size(), fx, 和 fy計算得到,dst的類型和src的類型一樣。

  • 參數 dsize 輸出圖像的大小,如果它等于零,它按下面方式計算:
    dsize=Size(round(fx*src.cols),round(fy*src.rows))\texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))} dsize?=?Size(round(fx*src.cols),?round(fy*src.rows))
    dsize或fx和fy都必須為非零值。

  • 參數 fx 沿水平軸的比例因子,當它等于0時,它按如下計算:
    (double)dsize.width/src.cols\texttt{(double)dsize.width/src.cols} (double)dsize.width/src.cols

  • 參數 fy 沿豎直軸的比例因子,當它等于0時,它按如下計算:
    (double)dsize.height/src.rows\texttt{(double)dsize.height/src.rows} (double)dsize.height/src.rows

  • 參數 interpolation 插值方法, 詳見 InterpolationFlags

參考:warpAffine, warpPerspective, remap

源碼示例

#include <iostream> #include <opencv2/opencv.hpp>int main() {cv::Mat image = cv::imread("D:\\OpenCVtest\\images\\juice.png");if (image.empty()){std::cout << "image read failed!" << std::endl;cv::waitKey(0);return 0;}cv::Mat imageDst;cv::Mat imageDst2;cv::resize(image, imageDst, cv::Size(0, 0), 0.5, 0.5);cv::resize(image, imageDst2, cv::Size(600, 400));cv::imshow("原圖", image);cv::imshow("長寬縮放0.5倍后的圖", imageDst);cv::imshow("長寬縮放指定長寬后的圖", imageDst2);cv::waitKey(0); }

運行結果:

原圖

長寬縮放0.5倍后的圖像

縮放到指定長寬的圖像

總結

以上是生活随笔為你收集整理的OpenCV图像缩放函数resize()的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。