项目需要javacv的包,用maven构建如下
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv</artifactId>
<version>0.11</version>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacpp</artifactId>
<version>0.11</version>
</dependency>
javacv里面有对象Mat,CvMat,IplImage对应opencv相应对象
如果要使用例如cvSetImageROI之类的方法需要static引入
下面是图片反白的示例:
package com.dealmap;
import static org.bytedeco.javacpp.opencv_core.CV_8U;
import static org.bytedeco.javacpp.opencv_core.subtract;
import static org.bytedeco.javacpp.opencv_highgui.CV_LOAD_IMAGE_COLOR;
import static org.bytedeco.javacpp.opencv_highgui.imread;
import static org.bytedeco.javacpp.opencv_highgui.imwrite;
import static org.bytedeco.javacpp.opencv_imgproc.COLOR_BGR2GRAY;
import static org.bytedeco.javacpp.opencv_imgproc.cvtColor;
import org.bytedeco.javacpp.opencv_core.Mat;
import org.bytedeco.javacpp.opencv_core.Size;
public class ReverseWrite {
public static void main(String[] args) {
Mat mat = imread("E:\\Sunset.jpg",CV_LOAD_IMAGE_COLOR);
Mat abc = new Mat();
//gray
cvtColor(mat, abc, COLOR_BGR2GRAY);
//1
Mat dst= Mat.ones(new Size(abc.rows(),abc.cols()), CV_8U).asMat();
//255
dst= dst.mul(dst, 255).asMat();
//sub
subtract(dst,abc,dst)