在Linux下配置OpenCV jar

这几天在用java做一个图像处理的东西。自己是按着这个Guide来的(点我点我),上面后面的教程中用到了OpenCV,于是我就着手搭建这个环境了。
我找到了一个opencv的jar包,然后把jar包放到了我的项目里面。然后拷贝了一段demo代码。demo中一句这样的代码

 System.loadLibrary( Core.NATIVE_LIBRARY_NAME );

这句的功能是加载一个native的库,其中NATIVE_LIBRARY_NMAE的值为opencv_java310。说白了对于Linux而言就是加载libopcv_java310.so。对于Windows就是opencv_java310.dll。单有jar文件是不行的。于是我又去官网下载了opencv-3.1.0,解压之后

cmake .
make

就可以得到库文件了。里面就有libopencv_java310。为了方便,你可以把lib目录里的所有的so文件复制到/usr/local/lib目录里。
然而到这里并没有结束,你还要告诉IDE到哪里去找这个library。对于Eclipse而言,你直接设置native library path就行了。对于IDEA,在Run->Edit Configurations里JVM options中添加

-Djava.library.path="/usr/local/lib"

具体可以参考这两个链接:
Eclipse
IDEA

重点issue

opencv-3.1.0去掉了highgui,把原来highgui分到了Imgcodecs(imread/imwrite and friends)和Videoio(VideoCapture, VideoWriter)
opencv-3.1.0去掉了highgui,把原来highgui分到了Imgcodecs(imread/imwrite and friends)和Videoio(VideoCapture, VideoWriter)
opencv-3.1.0去掉了highgui,把原来highgui分到了Imgcodecs(imread/imwrite and friends)和Videoio(VideoCapture, VideoWriter)

具体可以参考这里:传送门
我最初给的那个教程上是用2.4.*的版本做的示例。上面有这样一段代码:

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;
import org.opencv.imgproc.Imgproc;

public class Main {

   static int width;
   static int height;
   static double alpha = 2;
   static double beta = 50;

   public static void main( String[] args ) {

      try {
         System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
         Mat source = Highgui.imread("grayscale.jpg", 
         Highgui.CV_LOAD_IMAGE_GRAYSCALE);
         Mat destination = new Mat(source.rows(),source.cols(),source.type());

         Imgproc.equalizeHist(source, destination);
         Highgui.imwrite("contrast.jpg", destination);

      }catch (Exception e) {
         System.out.println("error: " + e.getMessage());
      }
   }
}

这段代码在3.*下面根本编译不过。会死在和Highui有关的语句上。同样地,你如果下载2.4的版本,还是会编译失败。这次会死在下面这句上。

System.loadLibrary( Core.NATIVE_LIBRARY_NAME );

所以我们还是用3.x的版本吧。改动一下代码就行了。把highgui.imread改为Imgcodecs.imread。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值