OpenCV バージョン 5 のサンプルプログラム

概要

OpenCV バージョン 5 の C++ API を用いた,画像の読み込みと表示,色変換,モルフォロジー演算(膨張・収縮・オープニング・クロージング)のサンプルプログラムを収録している.Linux での実行を前提としている.

目次

サイト内の関連情報

【OpenCV の公式情報】

画像ファイルの読み込みと表示

◆プログラムの例

#include<opencv2/core.hpp>
#include<opencv2/highgui.hpp>

using namespace cv;

int main( int argc, char** argv )
{
  Mat rgb;

  rgb = imread( "fruits.jpg", IMREAD_COLOR );
  namedWindow( "Display Image", WINDOW_AUTOSIZE );
  imshow( "Display Image", rgb );

  waitKey(0);

  return 0;
}

◆コンパイルコマンドの例

Linux の場合を示している.

g++ -std=c++17 -o a.out hoge.cc `pkg-config --cflags --libs opencv5`
◆ 実行結果の例 (OpenCV バージョン 5 で実行)
./a.out

カラー画像の濃淡画像への変換

◆プログラムの例

#include<opencv2/core.hpp>
#include<opencv2/imgproc.hpp>
#include<opencv2/highgui.hpp>

using namespace cv;

int main( int argc, char** argv )
{
  Mat rgb, gray;

  rgb = imread( "fruits.jpg", IMREAD_COLOR );
  cvtColor(rgb, gray, COLOR_BGR2GRAY);

  namedWindow( "Display Image", WINDOW_AUTOSIZE );
  imshow( "Display Image", gray );

  waitKey(0);

  return 0;
}

◆コンパイルコマンドの例

Linux の場合を示している.

g++ -std=c++17 -o a.out hoge.cc `pkg-config --cflags --libs opencv5`

◆ 実行結果の例 (OpenCV バージョン 5 で実行)

./a.out

dilate, erode の例

◆プログラムの例

#include<opencv2/core.hpp>
#include<opencv2/imgproc.hpp>
#include<opencv2/highgui.hpp>

using namespace cv;

int main( int argc, char** argv )
{
  Mat rgb, hsv, hsv2, rgb2;

  rgb = imread( "fruits.jpg", IMREAD_COLOR );
  cvtColor(rgb, hsv, COLOR_BGR2HSV);
  dilate(hsv, hsv2, Mat(), Point(-1,-1), 8);
  cvtColor(hsv2, rgb2, COLOR_HSV2BGR);

  namedWindow( "Display Image", WINDOW_AUTOSIZE );
  imshow( "Display Image", rgb2 );

  waitKey(0);

  return 0;
}

◆コンパイルコマンドの例

Linux の場合を示している.

g++ -std=c++17 -o a.out hoge.cc `pkg-config --cflags --libs opencv5`

◆プログラムの例

#include<opencv2/core.hpp>
#include<opencv2/imgproc.hpp>
#include<opencv2/highgui.hpp>

using namespace cv;

int main( int argc, char** argv )
{
  Mat rgb, hsv, hsv2, rgb2;

  rgb = imread( "fruits.jpg", IMREAD_COLOR );
  cvtColor(rgb, hsv, COLOR_BGR2HSV);
  erode(hsv, hsv2, Mat(), Point(-1,-1), 8);
  cvtColor(hsv2, rgb2, COLOR_HSV2BGR);

  namedWindow( "Display Image", WINDOW_AUTOSIZE );
  imshow( "Display Image", rgb2 );

  waitKey(0);

  return 0;
}

◆コンパイルコマンドの例

Linux の場合を示している.

g++ -std=c++17 -o a.out hoge.cc `pkg-config --cflags --libs opencv5`

◆プログラムの例

#include<opencv2/core.hpp>
#include<opencv2/imgproc.hpp>
#include<opencv2/highgui.hpp>

using namespace cv;

int main( int argc, char** argv )
{
  Mat rgb, hsv, hsv2, rgb2, hsv3, rgb3;

  rgb = imread( "fruits.jpg", IMREAD_COLOR );
  cvtColor(rgb, hsv, COLOR_BGR2HSV);
  erode(hsv, hsv2, Mat(), Point(-1,-1), 8);
  dilate(hsv2, hsv3, Mat(), Point(-1,-1), 8);
  cvtColor(hsv3, rgb3, COLOR_HSV2BGR);

  namedWindow( "Display Image", WINDOW_AUTOSIZE );
  imshow( "Display Image", rgb3 );

  waitKey(0);

  return 0;
}

◆コンパイルコマンドの例

Linux の場合を示している.

g++ -std=c++17 -o a.out hoge.cc `pkg-config --cflags --libs opencv5`

◆プログラムの例

#include<opencv2/core.hpp>
#include<opencv2/imgproc.hpp>
#include<opencv2/highgui.hpp>

using namespace cv;

int main( int argc, char** argv )
{
  Mat rgb, hsv, hsv2, rgb2, hsv3, rgb3;

  rgb = imread( "fruits.jpg", IMREAD_COLOR );
  cvtColor(rgb, hsv, COLOR_BGR2HSV);
  dilate(hsv, hsv2, Mat(), Point(-1,-1), 8);
  erode(hsv2, hsv3, Mat(), Point(-1,-1), 8);
  cvtColor(hsv3, rgb3, COLOR_HSV2BGR);

  namedWindow( "Display Image", WINDOW_AUTOSIZE );
  imshow( "Display Image", rgb3 );

  waitKey(0);

  return 0;
}

◆コンパイルコマンドの例

Linux の場合を示している.

g++ -std=c++17 -o a.out hoge.cc `pkg-config --cflags --libs opencv5`

Opening と Closing によるノイズ除去

◆プログラムの例

#include<opencv2/core.hpp>
#include<opencv2/imgproc.hpp>
#include<opencv2/highgui.hpp>

using namespace cv;

int main( int argc, char** argv )
{
  Mat rgb, hsv, hsv2, hsv3, rgb3;

  rgb = imread( "fruits.jpg", IMREAD_COLOR );
  cvtColor(rgb, hsv, COLOR_BGR2HSV);
  morphologyEx(hsv, hsv2, MORPH_OPEN, getStructuringElement(MORPH_ELLIPSE, Size(8, 8) ) ) ;
  morphologyEx(hsv2, hsv3, MORPH_CLOSE, getStructuringElement(MORPH_ELLIPSE, Size(8, 8) ) ) ;
  cvtColor(hsv3, rgb3, COLOR_HSV2BGR);

  namedWindow( "Display Image", WINDOW_AUTOSIZE );
  imshow( "Display Image", rgb3 );

  waitKey(0);

  return 0;
}

◆コンパイルコマンドの例

Linux の場合を示している.

g++ -std=c++17 -o a.out hoge.cc `pkg-config --cflags --libs opencv5`

◆ 実行結果の例 (OpenCV バージョン 5 で実行)

./a.out