环境好了,我们就可以进入正文了。
在之前入门一、二中分别已经有画图的两个例子了。但没有细节展开我们的代码和OpenCV到底在干什么。
使用OpenCV时你需要补充的知识
你需要熟练使用Java Swing,或者是其它任何一门语言中关于GUI方面的编程。
我们这用的是OpenCV Java,因此对于Java Swing必须熟练。你可以安装eclipse 中的windowbuilder来帮助你做Swing的编程。
至于Java Swing中的界面、Frame、Panel、Button以及Layout,这块在“JDK核心技术卷1、卷2”中已有详细描述,我就不多此一举了。
Mat对象
OpenCV用来存储图像,很多时候都会用到这个Mat方法。数字图像可看做一个数值矩阵, 其中的每一个元素表明一个像素点。Mat在 OpenCV 中表示的是 N 维稠密矩阵,与稠密矩阵相对的是稀疏矩阵(只存储非零的像素值)。
Mat 类包含两部分,一是 矩阵头 (matrix header),二是 矩阵指针 (pointer to matrix),部分矩阵头以下:blog
int flags; // signaling the contents of the matrix
int dims; // dimensions
int rows, cols; // rows and columns
MatSize size; //
MatStep step; //
具体不作进一步展开,但我们要会使用这个Mat。
因此今天以Mat来做几个小练习。
Mat划线
package org.mk.opencv;
import org.opencv.core.Core;