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

C ++を使用してOpenCVの特定のピクセルの値を取得するにはどうすればよいですか?


特定のピクセルの値を読み取るには、「at」または「directaccess」メソッドのいずれかを使用できます。ここでは、両方のアプローチについて学習します。

'at'メソッドから始めましょう。次のプログラムは、RGB画像の(10、29)にあるピクセル値を読み取ります。

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main() {
   Mat image;//taking an image matrix//
   image = imread("sky.jpg");//loading an image//
   int x = image.at<Vec3b>(10, 29)[0];//getting the pixel values//
   int y = image.at<Vec3b>(10, 29)[1];//getting the pixel values//
   int z = image.at<Vec3b>(10, 29)[2];//getting the pixel values//
   cout << "Value of blue channel:" << x << endl;//showing the pixel values//
   cout << "Value of green channel:" << x << endl;//showing the pixel values//
   cout << "Value of red channel:" << x << endl;//showing the pixel values//
   system("pause");//pause the system to visualize the result//
   return 0;
}

出力

C ++を使用してOpenCVの特定のピクセルの値を取得するにはどうすればよいですか?

プログラムの結果はコンソールウィンドウに表示されます。ここでは、次の3つの線を使用して、3つの異なるチャネルのピクセルフォーム値を取得しています。

int x = image.at<Vec3b>(10, 29)[0];
int y = image.at<Vec3b>(10, 29)[1];
int z = image.at<Vec3b>(10, 29)[2];

最初の行では、最初のチャネル(青)の(10、29)にあるピクセルの値を読み取り、その値を「x」変数に格納します。 2行目と3行目は、2 nd の値を格納しています。 および3 rd それぞれチャネル。それでは、「直接アクセス」方式を使用してピクセル値を読み取る方法を学びましょう。

次のプログラムは、(10、29)にあるピクセル値を直接読み取ります-

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main() {
   Mat_<Vec3b>image;//taking an image matrix//
   image = imread("sky.jpg");//loading an image//
   Vec3b x = image(10, 29);//getting the pixel values//
   cout << x << endl;//showing the pixel values//  
   system("pause");//pause the system to visualize the result//
   return 0;
}

出力

C ++を使用してOpenCVの特定のピクセルの値を取得するにはどうすればよいですか?


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

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

  2. Java OpenCVライブラリを使用して画像の明るさを変更するにはどうすればよいですか?

    convertTo() org.opencv.core.Matのメソッド クラスは、画像のコントラストと明るさを変更するために、指定された行列に対して必要な計算を実行します。このメソッドは4つのパラメーターを受け入れます- マット −ソース行列と同じサイズとタイプの結果を保持するための空行列。 rtype −出力マトリックスのタイプを指定する整数値。この値が負の場合、タイプはソースと同じになります。 アルファ −ゲイン値。0より大きくなければなりません(デフォルト値1)。 ベータ −バイアス値(デフォルト値0)。 OpenCVJavaライブラリを使用して画像の