ITPub博客

首页 > 应用开发 > Java > OpenCV-Java版学习(2.图像入门)

OpenCV-Java版学习(2.图像入门)

Java 作者:whisperrr 时间:2021-08-21 16:21:30 0 删除 编辑

  图像入门

  一.在Java中使用OpenCV注意事项

  1.解决awt报错问题

  先给大家贴个错误,如下图:

  我们在使用awt处理图像的时候报了这个异常,HeadlessException 异常是在环境中不支持键盘、显示器或鼠标的环境中调用与键盘、显示器或鼠标有关的代码时,被抛出的异常。

  网上有几种解决方法,比较方便的一种解决方法如下:

  System.setProperty("java.awt.headless", "false");

  这段代码激活了Headless模式,Headless模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标。

  这段代码相当于告诉程序,现在你要工作在Headless模式下,就不要指望硬件帮忙了,你得自力更生,依靠系统的计算能力模拟出这些特性来。

  2.加载动态库

  这里我们在Java中调用一下dll就行了,如下:

  URL url = ClassLoader.getSystemResource("lib/opencv/opencv_java451.dll");//这里的dll根据你自己的实际情况写

  System.load(url.getPath());

  二.读取图像和显示图像

  在OpenCV中我们可以使用imread()函数来进行图像的读取。图像的工作目录或图像的完整路径应给出。

  该函数的定义如下:

  static Mat imread(String filename) 大连无痛人流哪家好  http://mobile.120wtrlyy.com/

  static Mat imread(String filename, int flags)

  flags是一个标志,它表示以何种方式来读取图像,它有常用的3个值,如下:

  IMREAD_COLOR = 1:加载彩色图像。任何图像的透明度都会被忽视。它是默认标志;

  IMREAD_GRAYSCALE = 0:以灰度模式加载图像;

  IMREAD_UNCHANGED = -1:加载图像,包括alpha通道。

  当然我们也可以在源码中查看其他的值,如下:

  在OpenCV中我们可以使用imshow()函数来在窗口中显示图像,窗口自动适应图像的尺寸,该函数使用如下:

  public static void imshow(String winname, Mat img);

  第一个参数是窗口名称,它是一个字符串。第二个参数是我们读取图片的对象。

  图像读取和显示的代码如下:

  import org.junit.jupiter.api.Test;

  import org.opencv.core.Mat;

  import org.springframework.boot.test.context.SpringBootTest;

  import java.net.URL;

  import static org.opencv.highgui.HighGui.*;

  import static org.opencv.imgcodecs.Imgcodecs.imread;

  @SpringBootTest

  class DemoApplicationTests { @Test public void testOpencv1() throws Exception { // 解决awt报错问题 System.setProperty("java.awt.headless", "false"); // 加载动态库 URL url = ClassLoader.getSystemResource("lib/opencv/opencv_java451.dll"); System.load(url.getPath()); // 读取图像,以彩色模式(1)显示,0是灰度模式,-1是加载图像,包括alpha通道 Mat src = imread("D:\\OpenCV_Study\\demo1\\src\\main\\resources\\image\\test1.jpg",1); if (src.empty()) { throw new Exception("image is empty"); } imshow("image",src); waitKey(0); destroyAllWindows(); }

  }


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70005147/viewspace-2788140/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2021-08-11

  • 博文量
    24
  • 访问量
    13089