OpenCV-C ++-cv :: reset



Opencv C Cv Resize



1. cv::resize

C++

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

Python



dst = cv.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])

#include

画像のサイズを変更します。
画像サイズをズームします。



関数resize画像のサイズを変更しますsrc指定されたサイズまで。最初のdstに注意してくださいタイプまたはsize考慮されません。代わりに、sizeおよびtype src, dsize, fx, and fyから派生します。事前に作成されたdstに合うようにsrcのサイズを変更する場合は、次のように関数を呼び出すことができます。
関数resize画像src指定したサイズにズームします。イニシャルdstに注意してくださいor sizeと入力します。対照的に、sizeおよびtype src, dsize, fx, and fyからに由来する。ズームsrc事前に作成されたdstに合わせてサイズを調整する場合は、次のように関数を呼び出すことができます。

// explicitly specify dsize=dst.size(), fx and fy will be computed from that. resize(src, dst, dst.size(), 0, 0, interpolation)

画像を各方向に2倍にデシメートする場合は、次のように関数を呼び出すことができます。
画像を各方向に2倍縮小する場合は、次の方法でこの関数を呼び出すことができます。

// specify fx and fy and let the function compute the destination image size. resize(src, dst, Size(), 0.5, 0.5, interpolation)

画像を縮小するには、通常、INTER_AREAで最適に表示されます。補間、画像を拡大するには、一般的にc::INTER_CUBICで最もよく見えます(遅い)またはINTER_LINEAR (高速ですが、それでも問題ないように見えます)。
画像を縮小するには、通常INTER_AREAを使用します補間するときに効果が最も高くなりますが、画像を拡大するには、通常はc::INTER_CUBICを使用します。 (低速)またはINTER_LINEAR (高速ですが、それでも問題ありません)最良の結果を表示します。



1.1パラメータ

  • src -入力画像。
  • dst -出力画像。サイズはdsizeです。 (ゼロ以外の場合)またはsrc.size()fx、およびfyから計算されたサイズdstのタイプsrcと同じです。
  • dsize -出力画像サイズ。ゼロに等しい場合は、dsize = Size(round(fx*src.cols), round(fy*src.rows))として計算されます。 dsizeのいずれかまたは両方fxおよびfyゼロ以外である必要があります。
  • fx -横軸に沿った倍率が0の場合、(double)dsize.width/src.colsとして計算されます。
  • fy -縦軸に沿った倍率が0の場合、(double)dsize.height/src.rowsとして計算されます。
dsize = cv::Size(round(fx*src.cols), round(fy*src.rows)) dsize = cv::Size(width, height) dsize = cv::Size(x, y) dsize = cv::Size(cols, rows)

2.例

//============================================================================ // Name : using namespace cv // Author : Yongqiang Cheng // Version : Feb 22, 2020 // Copyright : Copyright (c) 2019 Yongqiang Cheng // Description : Hello World in C++, Ansi-style //============================================================================ #include #include #include #include #include #include using namespace cv using namespace std int main(int, char**) { Mat frame Mat resized_image //--- INITIALIZE VIDEOCAPTURE VideoCapture cap // open the default camera using default API // cap.open(0) // OR advance usage: select any API backend int deviceID = 0 // 0 = open default camera int apiID = cv::CAP_ANY // 0 = autodetect default API // open selected camera using selected API cap.open(deviceID + apiID) // check if we succeeded if (!cap.isOpened()) { cerr << 'ERROR! Unable to open camera ' return -1 } namedWindow('source image', WINDOW_AUTOSIZE) namedWindow('resized image', WINDOW_AUTOSIZE) float scale = 0.5 int frame_width = cap.get(CAP_PROP_FRAME_WIDTH) int frame_height = cap.get(CAP_PROP_FRAME_HEIGHT) int resized_width = frame_width * scale int resized_height = frame_height * scale //--- GRAB AND WRITE LOOP cout << 'Start grabbing' << endl << 'Press any key to terminate' << endl for () { // wait for a new frame from camera and store it into 'frame' cap.read(frame) // check if we succeeded if (frame.empty()) { cerr <<'ERROR! blank frame grabbed ' break } resize(frame, resized_image, Size(resized_width, resized_height)) // show live and wait for a key with timeout long enough to show images imshow('source image', frame) imshow('resized image', resized_image) if (waitKey(5)>= 0) { break } } // the camera will be deinitialized automatically in VideoCapture destructor return 0 } 09:25:57 **** Build of configuration Debug for project DisplayImage **** make all Building file: ../src/DisplayImage.cpp Invoking: GCC C++ Compiler g++ -std=c++0x -I/usr/local/include -I/usr/local/include/opencv4 -I/usr/local/include/opencv4/opencv2 -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF'src/DisplayImage.d' -MT'src/DisplayImage.o' -o 'src/DisplayImage.o' '../src/DisplayImage.cpp' Finished building: ../src/DisplayImage.cpp Building target: DisplayImage Invoking: GCC C++ Linker g++ -L/usr/local/lib -o 'DisplayImage' ./src/DisplayImage.o -lopencv_core -lopencv_video -lopencv_ml -lopencv_imgproc -lopencv_img_hash -lopencv_flann -lopencv_features2d -lopencv_calib3d -lopencv_dnn -lopencv_dnn_objdetect -lopencv_cvv -lopencv_text -lopencv_datasets -lopencv_aruco -lopencv_bgsegm -lopencv_shape -lopencv_imgcodecs -lopencv_videoio -lopencv_highgui -lopencv_bioinspired Finished building target: DisplayImage 09:26:01 Build Finished (took 3s.127ms)

画像