金子邦彦研究室人工知能OpenCV 4 の Python プログラムOpenCV バージョン 2.4 のサンプルプログラム

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

OpenCV (Open Computer Vision Library) は, 実時間コンピュータビジョン (real time computer vision) の アルゴリズムと文書とサンプルコードの集まり.

サイト内の関連ページ

※ 参考 Web ページ: https://opencv.org

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

◆プログラムの例

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

using namespace cv;

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

  rgb = imread( "/usr/local/share/OpenCV/samples/c/fruits.jpg", /* 3-channel color image */ 1 );
  namedWindow( "Display Image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO );
  imshow( "Display Image", rgb );

  waitKey(0);

  return 0;
}

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

Linux の場合を示している.

g++ -o a.out hoge.cc -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_core
◆ 実行結果の例 (OpenCV バージョン 2.4.9 で実行)

./a.out

[image]

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

◆プログラムの例

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

using namespace cv;

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

  rgb = imread( "/usr/local/share/OpenCV/samples/c/fruits.jpg", /* 3-channel color image */ 1 );
  cvtColor(rgb, gray, CV_BGR2GRAY);

  namedWindow( "Display Image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO );
  imshow( "Display Image", gray );

  waitKey(0);

  return 0;
}

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

Linux の場合を示している.

g++ -o a.out hoge.cc -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core

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

./a.out

[image]

dilate, erode の例

◆プログラムの例

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

using namespace cv;

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

  rgb = imread( "/usr/local/share/OpenCV/samples/c/fruits.jpg", /* 3-channel color image */ 1 );
  cvtColor(rgb, hsv, CV_BGR2HSV);
  dilate(hsv, hsv2, Mat(), Point(-1,-1), 8); 
  cvtColor(hsv2, rgb2, CV_HSV2BGR);

  namedWindow( "Display Image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO );
  imshow( "Display Image", rgb2 );

  waitKey(0);

  return 0;
}

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

Linux の場合を示している.

g++ -o a.out hoge.cc -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core

◆プログラムの例

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

using namespace cv;

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

  rgb = imread( "/usr/local/share/OpenCV/samples/c/fruits.jpg", /* 3-channel color image */ 1 );
  cvtColor(rgb, hsv, CV_BGR2HSV);
  erode(hsv, hsv2, Mat(), Point(-1,-1), 8); 
  cvtColor(hsv2, rgb2, CV_HSV2BGR);

  namedWindow( "Display Image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO );
  imshow( "Display Image", rgb2 );

  waitKey(0);

  return 0;
}

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

Linux の場合を示している.

g++ -o a.out hoge.cc -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core

◆プログラムの例

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

using namespace cv;

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

  rgb = imread( "/usr/local/share/OpenCV/samples/c/fruits.jpg", /* 3-channel color image */ 1 );
  cvtColor(rgb, hsv, CV_BGR2HSV);
  erode(hsv, hsv2, Mat(), Point(-1,-1), 8); 
  dilate(hsv2, hsv3, Mat(), Point(-1,-1), 8); 
  cvtColor(hsv3, rgb3, CV_HSV2BGR);

  namedWindow( "Display Image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO );
  imshow( "Display Image", rgb3 );

  waitKey(0);

  return 0;
}


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

Linux の場合を示している.

g++ -o a.out hoge.cc -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core

◆プログラムの例

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

using namespace cv;

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

  rgb = imread( "/usr/local/share/OpenCV/samples/c/fruits.jpg", /* 3-channel color image */ 1 );
  cvtColor(rgb, hsv, CV_BGR2HSV);
  dilate(hsv, hsv2, Mat(), Point(-1,-1), 8); 
  erode(hsv2, hsv3, Mat(), Point(-1,-1), 8); 
  cvtColor(hsv3, rgb3, CV_HSV2BGR);

  namedWindow( "Display Image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO );
  imshow( "Display Image", rgb3 );

  waitKey(0);

  return 0;
}


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

Linux の場合を示している.

g++ -o a.out hoge.cc -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core

Opening と Closing によるノイズ除去

◆プログラムの例

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

using namespace cv;

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

  rgb = imread( "/usr/local/share/OpenCV/samples/c/fruits.jpg", /* 3-channel color image */ 1 );
  cvtColor(rgb, hsv, CV_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, CV_HSV2BGR);

  namedWindow( "Display Image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO );
  imshow( "Display Image", rgb3 );

  waitKey(0);

  return 0;
}

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

Linux の場合を示している.

g++ -o a.out hoge.cc -I/usr/local/include/opencv2 -I/usr/local/include/opencv -L/usr/local/lib -lopencv_highgui -lopencv_imgproc -lopencv_core

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

./a.out

[image]