java 图片八分标

本文介绍了一种使用Java实现的批量图片标注转换方法,通过修改图片的标注JSON,将原有的单个大框转换为多个小框,适用于特定类型的图像处理和算法训练任务。
    public void import6(){
        TagImgFilter filter = new TagImgFilter();
        filter.setEq_orgId("c1fa7ba875fa4c9a899e2787eb79e802");
        filter.setEq_setId("69f98b9be4174842a101b211ae0058c5");
        filter.setEq_typeId("0835426e62e24b309272cd73f58d0fee");
        
        filter.setNull_tagJson(false);// 是否要有标注的,true是没标注
        
        List<TagImg> imgList = tagImgService.selectAll(filter);
        System.out.println(imgList.size());
        
        int countadd = 0;
        for (TagImg tagimg : imgList) {
            countadd++;
            System.out.println(countadd);
            
            JSONArray array=JSONArray.parseArray(tagimg.getTagJson());//得到原来大框的json
            JSONObject jsonObj = array.getJSONObject(0);
            
            JSONArray arrayNew=new JSONArray();
            int j = 0;
            for(int i=1;i<=8;i++){
                JSONObject obj = new JSONObject();                    
                if(i%2!=0){//单数1、3、5、7
                    obj.put("x", jsonObj.getDouble("x"));
                    obj.put("y", jsonObj.getDouble("y")+(jsonObj.getDouble("height")/4)*j);    
                }else{//双数2、4、6、8
                    obj.put("x", jsonObj.getDouble("x")+jsonObj.getDouble("width")/2);
                    obj.put("y", jsonObj.getDouble("y")+(jsonObj.getDouble("height")/4)*j);
                    j++;
                }
                obj.put("width", jsonObj.getDouble("width")/2);
                obj.put("height",jsonObj.getDouble("height")/4);
                obj.put("mark", i);                
                arrayNew.add(obj);
            }
            System.out.println(arrayNew);
            
            tagimg.setTagJson(arrayNew.toString());// 带了标注
            tagImgService.save(tagimg);
        }
        /*if(countadd==1){
              break;
          }*/
    }

 

转载于:https://www.cnblogs.com/lely/p/10364590.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值