OpenCV の全称は Open Source Computer Vision Library であり、クロスプラットフォームのコンピュータビジョンライブラリです。
OpenCV の全称は Open Source Computer Vision Library であり、クロスプラットフォームのコンピュータビジョンライブラリです。OpenCV はインテル社によって発起され、開発に参加しており、BSD ライセンスで発行されており、商業および研究分野で無料で使用できます。OpenCV はリアルタイムの画像処理、コンピュータビジョン、パターン認識プログラムの開発に使用できます。このプログラムライブラリは、インテル社の IPP を使用して加速処理することもできます。
OpenCV は以下の分野の問題を解決するために使用できます:
拡張現実
顔認識
ジェスチャー認識
人間とコンピュータのインタラクション
動作認識
運動追跡
物体認識
画像分割
ロボット
OpenCV は C++ 言語で書かれており、その主要なインターフェースも C++ 言語ですが、大量の C 言語インターフェースも保持されています。このライブラリには、Python、Java、MATLAB/OCTAVE(バージョン 2.5)のインターフェースも多数あります。これらの言語の API インターフェース関数はオンラインドキュメントを通じて取得できます。現在、C#、Ch、Ruby へのサポートも提供されています。
すべての新しい開発とアルゴリズムは C++ インターフェースを使用しています。CUDA を使用した GPU インターフェースも 2010 年 9 月から実装されました。
以上の内容はウィキペディアの OpenCV 項目からの抜粋です。
以下のコードは OpenCV を使用して実装された簡単な画像回転機能です(idea の設定は本当に厄介です…)
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Point;
import org.opencv.imgproc.Imgproc;
import org.opencv.imgcodecs.Imgcodecs;
import static org.opencv.highgui.HighGui.imshow;
import static org.opencv.highgui.HighGui.waitKey;
public class ImageRotateDemo {
public static Mat rotate(Mat src, double angele) {
Mat dst = src.clone();
Point center = new Point(src.width() / 2.0, src.height() / 2.0);
Mat affineTrans = Imgproc.getRotationMatrix2D(center, angele, 1.0);
Imgproc.warpAffine(src, dst, affineTrans, dst.size(), Imgproc.INTER_NEAREST);
return dst;
}
public static void main(String[] args){
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat src=Imgcodecs.imread("E:/opencv/project/YCY.jpg");
src= rotate(src,90.0);
imshow("表示画像", src);
waitKey();
// Imgcodecs.imwrite("E:/opencv/project/YCYrotate.jpg", src);
}
}