samwellwang

samwellwang

coder
twitter

OpenCV

OpenCV 的全稱是 Open Source Computer Vision Library,是一個跨平台的計算機視覺庫。

2019-01-08

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);
	}
}
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。