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 配置 Open 真的是個坑啊…)
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);
}
}