【Java+OpenCV】图像的基本处理(读取,显示)

Mat image1=new Mat(480,640, CvType.CV_8UC3);

Mat image2=new Mat(new Size(640,480),CvType.CV_8UC3);
参考文献: 书籍《OpenCv3.0 comeputer Vision with java》

1.环境的搭建:

Java+OpenCV环境的搭建较为简单,可以参考OpenCV官方网站的说明文档
或:
参看 《OpenCv3.0 comeputer Vision with java》 第一章内容,详细介绍了Eclipse、NetBeans等主流开发工具配置、以及使用Ant、Maven等进行开放的方法。
或:
参考以下博文,介绍了基于 IntelliJ IDEA的环境配置方法
链接地址 

使用Java开发OpenCV3程序-1.开发环境安装与配置


2.简介

本文将介绍以下内容
1.基本图像矩阵创建
2.像素操作
3.从文件读取和显示图片
4.OpenCv交互界面的整合


3.基本图像矩阵创建

学过图形学应该知道矩阵与图像之间的关系,这里就不再赘述。
OpenCv中用Mat文件保存图像矩阵;
这里简单介绍java中提供的2个Mat的构造函数;
Mat image1=new Mat(480,640, CvType.CV_8UC3);

参数作用分别为:图像矩阵行数、列数、图像类型(8位无符号3通道)

Mat image2=new Mat(new Size(640,480),CvType.CV_8UC3,new Scalar(128,3,4));

参数作用分别为:图像矩阵行数、列数、图像类型、每个矩阵的值(3通道,故为三个值)

4.像素操作

对于图像中的每个像素进行操作,有多重方法,各有优缺点
method 1:使用put()函数
for(int u=0;ufor(int v=0;vnew byte[]{1,2,3});
    }
}

为每个Image1中的每一个像素点,放置{1,2,3};

5.从文件读取和显示图片

OpenCV支持有限的图片格式,具体可参阅官方文档(常用的支持bmp、jpeg、png、tiff),可以使用Imgcodecs类的imread方法来读取图片,一个简单的图片读取方法如下(注意测试时,路径不要包括中文):
Mat mat= Imgcodecs.imread("E:\\imageforOpencv\\8bitgirl.png");
if(mat.dataAddr()==0){
    System.out.println("打开文件出错");
}

在C++显示图片,OpenCV为其提供了一个叫做HighGUI的接口,尚且没有在java中实现。





你可能感兴趣的:(OpenCV,and,Java)