C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++を使用してOpenCVのビデオの解像度を変更するにはどうすればよいですか?


OpenCVの'set()'クラスを使用しました。 'set()'クラスを使用して、フレームの高さと幅を設定できます。次の行は、プログラムのビデオの高さと幅を設定しています。

  • set(CAP_PROP_FRAME_WIDTH、320);
  • set(CAP_PROP_FRAME_HEIGHT、240);

最初の行はフレームの幅を320ピクセルに設定し、2番目の行はフレームの高さを240ピクセルに設定しています。これらの2つのラインが一緒になって、320x240の解像度のビデオストリームを形成しています。これが、OpenCVを使用してビデオの解像度を簡単に変更する方法です。

次のプログラムは、デフォルトのカメラから取得したビデオストリームの解像度を変更します-

#include<opencv2/opencv.hpp>//OpenCV header to use VideoCapture class//
#include<iostream>
using namespace std;
using namespace cv;
int main() {
   Mat myImage;//Declaring a matrix to load the frames//
   namedWindow("Video Player");//Declaring the video to show the video//
   VideoCapture cap(0);//Declaring an object to capture stream of frames from default camera//
   cap.set(CAP_PROP_FRAME_WIDTH, 320);//Setting the width of the video
   cap.set(CAP_PROP_FRAME_HEIGHT, 240);//Setting the height of the video//
   if (!cap.isOpened()){ //This section prompt an error message if no video stream is found//
      cout << "No video stream detected" << endl;
      system("pause");
      return-1;
   }
   while (true){ //Taking an everlasting loop to show the video//
      cap >> myImage;
      if (myImage.empty()){ //Breaking the loop if no video frame is detected//
         break;
      }
      imshow("Video Player", myImage);//Showing the video//
      char c = (char)waitKey(25);//Allowing 25 milliseconds frame processing time and initiating break condition//
      if (c == 27){ //If 'Esc' is entered break the loop//
         break;
      }
   }
   cap.release();//Releasing the buffer memory//
   return 0;
}

このプログラムは、320x240の解像度でビデオを再生します。


  1. C ++を使用してOpenCVで画像の明るさを変更するにはどうすればよいですか?

    明るさを変更するとは、ピクセルの値を変更することを意味します。これは、各ピクセルの現在の値に整数値を加算または減算することを意味します。ピクセルごとに整数値を追加すると、画像が明るくなります。すべてのピクセルから一定の値を引くと、明るさが低下します。まず、明るさを上げる方法を学び、次に明るさを下げる方法を学びます。 明るさを上げる OpenCVを使用して明るさを上げるのは非常に簡単です。明るさを上げるには、チャンネルごとに値を追加すると、明るさが増します。たとえば、BRG画像には、青(B)、緑(G)、赤(R)の3つのチャネルがあります。つまり、ピクセルの現在の値は(B. G、R)になります。

  2. C ++を使用してOpenCVの画像のチャンネル数を計算するにはどうすればよいですか?

    このトピックでは、画像のチャンネル数を確認する方法を理解します。プログラムを実行すると、チャンネル番号がコンソールウィンドウに表示されます。 チャネルの番号を取得するために、channels()という名前のOpenCVのクラスを使用しました。 クラスchannels()のオブジェクトとして画像マトリックスを渡すと、チャネルに整数値が与えられます。 次のプログラムは、チャネルの数をカウントし、コンソールウィンドウに表示します。 例 #include<iostream> #include<opencv2/highgui/highgui.hpp> using namesp