JavaCV 绘制多边形
提示:个人学习探索过程,不一定完全正确,请理性看待。
文章目录
- 前言
- 一、JavaCV包导入
- 二、绘制多边形
- 总结
前言
提示:JavaCV 提供了在计算机视觉领域的封装库,包括:OpenCV、ARToolKitPlus、libdc1394 2.x 、PGR FlyCapture和FFmpeg。此外,该工具可以很容易地使用Java平台的功能。
提示:以下是本篇文章正文内容,下面案例可供参考
一、JavaCV包导入
在Maven仓库中搜索JavaCV ,选择 JavaCV Platform 根据自己的需求选择版本 引入包。
代码如下(示例):
implementation 'org.bytedeco:javacv-platform:1.5.6'
二、绘制多边形
提示:JavaCV和OpenCV绘制多边形有一定的不同,网上大部分是OpenCV的代码 很少看到JavaCV,官方文档只有一些简单示例,所以不能保证我的代码完全没有问题。
代码如下(示例):
package com.example.demo;import org.bytedeco.javacpp.BytePointer;
import org.bytedeco.opencv.global.opencv_core;
import org.bytedeco.opencv.global.opencv_highgui;
import org.bytedeco.opencv.global.opencv_imgproc;
import org.bytedeco.opencv.opencv_core.Mat;
import org.bytedeco.opencv.opencv_core.Point;
import org.bytedeco.opencv.opencv_core.Scalar;
import org.opencv.imgproc.Imgproc;public class DrawRect {public static void main(String[] args) {//多边形顶点int[][] inCabinetArea = {{0, 300}, {350, 340}, {360, 355}, {1200, 385}, {1280, 340}, {1280, 720},{0, 720}};//720为rows 可以理解为多少杭//1280为cols 可以理解为多少列//CV_8UC3 可以理解为3通道Mat mat = new Mat(720,1280,opencv_core.CV_8UC3);Point hatPoints = new Point(7);//Scalar 颜色Scalar pointer = new Scalar();pointer.red(0);pointer.green(20);pointer.blue(0);for (int i = 0, inCabinetAreaLength = inCabinetArea.length; i < inCabinetAreaLength; i++) {int[] ints = inCabinetArea[i];Point pB = new Point(ints[0], ints[1]);hatPoints.position(i).put(pB);}opencv_imgproc.fillConvexPoly(mat, hatPoints.position(0),7,pointer);opencv_highgui.imshow("123",mat);opencv_highgui.waitKey();}
}
注意:
opencv_imgproc.fillConvexPoly(mat, hatPoints.position(0),7,pointer);
7表示7个点根据自己的需求自行改变,否则可能没出会画出不一样的图形,血淋淋的教训。
画出的图形如下:
总结
提示:
@Namespace("cv") public static native void fillConvexPoly(@ByVal Mat img, @Const Point pts, int npts,@Const @ByRef Scalar color);
我遇到的坑就是fillConvexPoly时 没有理解npts参数的意思,大家可以理解为顶点。
OK 第一次写文章 没有经验,就当记录下踩坑日记吧,哈哈哈哈。
JavaCV 绘制多边形相关推荐
- html 根据坐标画多边形,28种css3绘制多边形代码分享
本文分享了28种CSS3绘制多边形的代码.在做网页项目中需要使用多边形扇形图形来完成一些功能,第一印象就是使用CSS3来完成.经过查资料发现了transform 的skew()正好合适且且使用方便. ...
- R语言ggplot2可视化可视化聚类图、使用geom_encircle函数绘制多边形标定属于同一聚类簇的数据点、并自定义每个聚类簇数据点的颜色、多边形框的颜色(Cluster Plot)、主副标题题注
R语言ggplot2可视化可视化聚类图.使用geom_encircle函数绘制多边形标定属于同一聚类簇的数据点.并自定义每个聚类簇数据点的颜色.多边形框的颜色(Cluster Plot).主副标题题注 ...
- R语言polygon函数绘制多边形实战
R语言polygon函数绘制多边形实战 目录 R语言polygon函数绘制多边形实战 #基本语法 #基础多边形绘制
- python绘制如下图形、小三角形边长20_在编程中发现数学之美——使用Python小龟绘制多边形...
在使用数学知识画出很酷的各种图形之前,你需要先学习Python编程语言的基础知识.本文将会带你熟悉以下编程概念:循环.变量.函数.使用小龟模块绘制图像.本文假设你已经安装了Python,如果没有,欢迎 ...
- Vue+Openlayer使用Draw实现交互式绘制多边形并获取面积
场景 Vue+Openlayer使用Draw实现交互式绘制线段: Vue+Openlayer使用Draw实现交互式绘制线段_BADAO_LIUMANG_QIZHI的博客-CSDN博客 在上面的基础上实 ...
- Qt 运用鼠标绘制多边形
文章目录 Qt 鼠标绘制多边形 技术要点: 实现过程: Qt 鼠标绘制多边形 分析: Qt鼠标绘图,就是要捕获鼠标事件,将捕获到的坐标点传递给场景,然后场景中就可以添加响应的2D图形了. 技术要点: ...
- html用css画多边形,Sass绘制多边形_Preprocessor, Sass, SCSS, clip-path, CSS处理器, 会员专栏 教程_W3cplus...
CSS画图形在Web运用中时常看到,比如三角形.五角星,心形,Ribbon等.不过以前使用CSS绘制图形一般都是借助于border来绘制,但这样的方式受到一定的限制,而且实用价值也有所限制.这篇文章将 ...
- c# 通过鼠标点击绘制多边形
1.问题描述 c#中,希望用鼠标点击事件,实现多边形的绘制: 2.解决思路 a.创建一个链表,将鼠标左键选中的点存储到链表中: b.根据链表中的值,利用c#的DrawPolygon()函数绘制: 3. ...
- canvas绘制多边形
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- android高德地图绘制多边形_Android安卓高德地图实现多边形绘制与编辑
需求:使用高德地图api实现多边形的绘制与编辑,从而实现圈中房屋的效果. 在js中有相关插件,效果很好.点我跳转 但是在高德开放平台中并未找到安卓ios的相关插件或者方法,于是提交工单,5个工作日才能 ...
最新文章
- WEB前端性能优化小结
- 深度学习100例 | 第33天:迁移学习-实战案例教程
- 并发编程之 Semaphore 源码分析
- java接口那一节是哪的知识_Java中的接口知识汇总
- IE8 select 动态下拉遇到的问题
- jquery地图插件jvectorMap
- [AU3]Backup Switch Config - cisco,huawei,h3c ---by onepc 153785587
- ScaleAnimation缩放动画Demo
- [渝粤教育] 西南科技大学 程序设计语言VB 在线考试复习资料(2)
- 威廉第三的MAC系列教程(一) ——使用ACPI Patcher制作DSDT补丁
- java使用Rocksdb
- 嵌入式系统开发-麦子学院(1)——前言
- 有/无外网情况下linux安装宋体
- 手机端的日期选择的插件
- 租用游艇问题——动态规划
- 网络摄像头RTSP拉流协议网页无插件视频直播平台EasyNVR为什么无法获取通道接口数据?
- 被裁了!39 岁阿里 P9,攒下 1.5 亿....
- php空间开启伪静态,php虚拟主机开启伪静态(虚拟主机伪静态规则配置)
- 我们DevSkim、Jarvis和USG是这样子的
- Root Moto X Style XT1570 国行系统