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

C ++を使用してOpenCVの色空間を変換するにはどうすればよいですか?


色空間は色を表現するモデルです。色を説明する方法はいくつかあります。たとえば、RGB、CYMK、HSV、グレースケールなど。

ここでは、'imgproc.hpp'という名前の新しいヘッダーを使用しました。 この'imgproc.hpp' 画像処理の略語です。色空間を変換するには、'cvtColor()'を使用する必要があります OpenCVの機能。この関数は'imgproc'で定義されています ヘッダーファイル。そのため、'imgproc.hpp'を含めました。

まず、2つの行列と2つのウィンドウを宣言しました。これらは、画像を読み込んで表示するためのものです。次に、「cat.jpg」という名前の画像を「myImage」にロードしました。 マトリックス。その後、'cvtColor(myImage、myImage_Converted、COLOR_RGB2GRAY)'を使用しました。 この行は、「myImage」のRGB色空間をグレースケールに変換し、「myImage_Converted」マトリックスに格納します。

'cvtColor()の生の形式 関数は-

cvtColor(Source Matrix, Destination Matrix, Color Space Conversion Code)

このプログラムでは、ソースマトリックスは「myImage」、デスティネーションマトリックスは「myImage_Converted」、色空間変換コードはCOLOR_RGB2GRAYです。

次のプログラムは、OpenCVでRGB画像をグレースケール画像に変換します。

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main(int argc, const char** argv) {
   Mat myImage;//declaring a matrix to load the image//
   Mat myImage_Converted;//declaring a matrix to store the converted image//  
   namedWindow("Actual_Image");//declaring window to show actual image//
   namedWindow("Converted_Image");//declaring window to show converted image//
   myImage = imread("cat.jpg");//loading the image in myImage matrix//
   cvtColor(myImage,myImage_Converted, COLOR_RGB2GRAY);//converting RGB to Grayscale//
   imshow("Actual_Image",myImage);//showing Actual Image//
   imshow("Converted_Image",myImage_Converted);//showing Converted Image//  
   waitKey(0);//wait for key stroke
   destroyAllWindows();//closing all windows
   return 0;
}

出力

C ++を使用してOpenCVの色空間を変換するにはどうすればよいですか?


  1. C ++を使用してOpenCVでバイナリイメージを作成するにはどうすればよいですか?

    バイナリイメージは、白黒の2色を表す単なるデジタルイメージです。画像処理の観点から、バイナリ画像には、0と1の2つの可能な値を持つピクセルが含まれています。ピクセルの値が0の場合、それは純粋な黒色を表します。ピクセルの値が1の場合、それは純粋な白色を意味します。 グレースケール画像では、それぞれに256の異なる可能な値があります。しかし、バイナリイメージでは、可能な値は2つだけです。バイナリイメージには、さまざまなタイプのアプリケーションがあります。たとえば、形態学的変換には2値画像が必要であり、背景からのオブジェクト形状の抽出には2値画像が必要です。OpenCVを使用すると、画像を2値画像

  2. OpenCVライブラリを使用してポジティブイメージをネガティブに変換するにはどうすればよいですか?

    画像をネガに変換するアルゴリズム 各ピクセルの赤、緑、青の値を取得します 255から各色の値を引き、新しい色の値として保存します。 変更した色から新しいピクセル値を作成します。 新しい値をピクセルに設定します。 Javaでの実装 ImageIO.read()メソッドを使用して必要な画像を読み取ります。 画像の高さと幅を取得します。 ネストされたforループを使用すると、画像の各ピクセルをトラバースします。 getRGB()メソッドを使用してピクセル値を取得します。 上記で取得したピクセル値をパラメータとしてバイパスしてColorオブジェ