首页 > 编程语言 >java计算二个四边形的重贴面积

java计算二个四边形的重贴面积

时间:2024-11-15 09:43:59浏览次数:3  
标签:p3 java double parseDouble 重贴 Double 四边形 rect2 rect1

判断rect2在rect1上重贴面积

 public boolean calculateAreas(TbCusCameraRecognitionAreas rect1, TbCusCameraRecognitionAreas rect2) {
        if (rect1 == null || rect2 == null) {
            return true;
        }
        try {
            double p1_x = Double.parseDouble(rect1.getImgX());//rect1左下角X
            double p1_y = Double.parseDouble(rect1.getImgY());//rect1左下角Y
            double p2_x = p1_x + Double.parseDouble(rect1.getImgW());//rect1右上角X
            double p2_y = p1_y + Double.parseDouble(rect1.getImgH());//rect1域右上角Y
            double p3_x = Double.parseDouble(rect2.getImgX());//rect2左下角X
            double p3_y = Double.parseDouble(rect2.getImgY());//rect2左下角Y
            double p4_x = p3_x + Double.parseDouble(rect2.getImgW());//rect2右上角X
            double p4_y = p3_y + Double.parseDouble(rect2.getImgH());//rect2右上角X

            //当没有重叠的时候
            if (p1_x > p4_x || p2_x < p3_x || p1_y > p4_y || p2_y < p3_y) {
                return false;
            }
            //计算重叠的宽
            double wid = Math.min(p2_x, p4_x) - Math.max(p1_x, p3_x);
            //计算重叠的高
            double hight = Math.min(p2_y, p4_y) - Math.max(p1_y, p3_y);
            double overlapArea = wid * hight;//重叠的面积
            log.info("重叠面积:{}", overlapArea);
            //识别的面积
            double totalArea = Double.parseDouble(rect2.getImgH()) * Double.parseDouble(rect2.getImgW());
            log.info("算法识别面积:{}", totalArea);
            log.info("占比:{}", (overlapArea / totalArea));
            //重叠面积占用识别的面积,大于等于配置的百分比,就通过
            if ((overlapArea / totalArea) < scale) {
                return false;
            }
            return true;
        } catch (Exception e) {
            log.error("计算重叠面积错误", e);
            return false;
        }
    }

标签:p3,java,double,parseDouble,重贴,Double,四边形,rect2,rect1
From: https://blog.csdn.net/duqiang5114/article/details/143770761

相关文章

  • Java核心知识体系10-线程管理
    Java系列Java核心知识体系1:泛型机制详解Java核心知识体系2:注解机制详解Java核心知识体系3:异常机制详解Java核心知识体系4:AOP原理和切面应用Java核心知识体系5:反射机制详解Java核心知识体系6:集合框架详解Java核心知识体系7:线程不安全分析Java核心知识体系8:Java如何保证线程......
  • java 反序列化 cc5复现
    复现环境:common-collections版本<=3.2.1,java版本随意.cc5则是cc6的一个变形,换了一个出口.直接从有变化的位置开看.TiedMapEntrypublicclassTiedMapEntryimplementsMap.Entry,KeyValue,Serializable{privatestaticfinallongserialVersionUID=-84538693613......
  • Java面试要点20 - Java接口的演进
    本文目录一、引言二、传统接口特性三、Java8中的默认方法四、静态方法的引入五、Java9私有方法六、接口的多重实现七、总结一、引言Java接口是一种抽象类型,是抽象方法的集合,用于规范类的行为。从Java8开始,接口的功能不断增强,引入了默认方法和静态方法,到Java9......
  • 【原创】java+ssm+mysql物流信息网系统设计与实现
    个人主页:程序猿小小杨个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎博客内容:Java项目实战、项目演示、技术分享文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交给天意。前言:随着全球经济一体化的不断推进,物流业作为支撑企业运营的重要环节,其管理和......
  • 【原创】java+ssm+mysql商品库存管理系统(进销存)设计与实现
    个人主页:程序猿小小杨个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎博客内容:Java项目实战、项目演示、技术分享文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交给天意。前言:随着市场竞争的日益激烈,企业面临着巨大的竞争压力。为了在市场中立于不败......
  • 【JavaEE初阶 — 多线程】生产消费模型 & 阻塞队列
         1.阻塞队列     (1)阻塞队列   1.概念   阻塞队列是一种特殊的队列,也遵守"先进先出"的原则;阻塞队列能是一种线程安全的数据结构,主要用来阻塞队列的插入和获取操作:当队列满了的时候,插入操作会被阻塞,直到队列有空位。当队列为空的时......
  • [RoarCTF 2019]Easy Java 1
    [RoarCTF2019]EasyJava1打开实例发现登录框,尝试万能密码admin'or1=1#后无果注意到登录框下有个help,点击发现文件读取显示文件notfound,文件未找到,怀疑是请求方法问题,尝试POST请求发现能成功下载,确定这道题为任意文件下载打开help.docx,显示看来文件不在这里,根据题目......
  • 【学习日记】notebook添加JAVA支持
    作者是个大学生这个专栏主要收集课时常用的软件以及女朋友上课用的软件的教程新开了gitcode用于上传安装包 环境说明windows11java23.0.1ijava1.1.2Anaconda-2024.02需提前配置好java环境本篇仅对添加支持进行说明ijava的GitCode链接NotebookAddsSupportForJava......
  • Java面试之有三个线程T1,T2,T3,如何保证顺序执行?
    前言本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!有三个线程T1,T2,T3,如何保证顺序执行?似乎有点模糊了,那就大概看一下面试题吧。好记性不如烂键盘***12万字的java面试题整理***有三个线程T1,T2,T3,如何保证顺序执行?在多线程中有多种方法让线程按特定顺序执行,......
  • Java面试之多线程&并发篇(3)
    前言本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!SynchronizedMap和ConcurrentHashMap有什么区别?什么是线程安全?Thread类中的yield方法有什么作用?Java线程池中submit()和execute()方法有什么区别?似乎有点模糊了,那就大概看一下面试题吧。好记性不如烂键盘***12......