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 and 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);
	}
}
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。