说明
先说一个通用的规则,个人理解
- C语言中
CV::对象,在Java是Core(org.opencv.core.Core) - -C语言中cv开头的方法,在Java是
Imgproc(org.opencv.imgproc.Imgproc) - 有了以上规则,遇到问题就可以搜索c版的opencv,比较java版的确实少
图片
在OpenCV中图片被存储在Mat(org.opencv.core)容器中
修改尺寸
Size size = new Size(720,680);
Mat dstMat= new Mat();
/**
* srcMat 原图,dstMat目标,size裁剪后大小
*/
Imgproc.resize(srcMat, dstMat, size);
srcMat.release();
srcMat = dstMat; //释放资源
旋转
Mat dstMat= new Mat();
//旋转90°
int angle = 90;
Imgproc.warpAffine(srcMat, dstMat, Imgproc.getRotationMatrix2D(new Point(dstMat.width() / 2, dstMat.height() / 2), angle, 1.0), size);
srcMat.release();
srcMat= dstMat;
翻转
Mat dstMat= new Mat();
/**
* srcMat 原图,dstMat目标,
* opencv翻转:
* flipCode:
* = 0 图像向下翻转 (垂直翻转)
* > 0 图像向右翻转(水平翻转)
* < 0 图像同时向下向右翻转 (水平垂直翻转)
*/
Core.flip(srcMat, dstMat, mode);
srcMat.release();
srcMat = dstMat; //释放资源
画矩形框
//这里的顺序是GBR,不是RGB
Scalar color = new Scalar(0,0,255);
//矩形框
Rect rect = new Rect(0,0,100,100;
Imgproc.rectangle(mat, rect,color );
添加文字
//这里的顺序是GBR,不是RGB
Scalar color = new Scalar(0,0,255);
//矩形框
Rect rect = new Rect(0,0,100,100;
Imgproc.putText(mat, "Hello", new Point(rect.x, rect.y), FONT_HERSHEY_SIMPLEX, 1,color);
如果要显示中文好像要添加底层的依赖库,暂时没弄
画直线
Scalar color = new Scalar(0,0,255);
Rect rect = new Rect(0,0,100,100;
Imgproc.line(mat, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), color );
本文档详细介绍了使用Java OpenCV库对Mat对象进行操作,包括修改尺寸、旋转、翻转、画矩形框、添加文字和画直线等基本步骤,帮助Java开发者在计算机视觉项目中更好地应用OpenCV。
3377

被折叠的 条评论
为什么被折叠?



