首页 问答 文章
登陆
登陆 注册新账号
注册
已有账号登陆
利用Opencv实现简单的图片切割(JAVA)
2019-02-28 18:24:32.0

最近工作中遇到了切割图片的问题,查了一些资料,锁定在用OpenCV实现,可是opencv的很多代码都是c++的,翻了手册,初步实现了图片切割功能。 不多说了,垒代码

import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;
import org.opencv.core.Core;
import org.opencv.core.Rect;

public class SplitPic {

    public static void main(String[] args ){
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        Mat image = Highgui.imread("D:/cc.jpg");
        //System.out.println( "mat = " + image.dump() );

        int m = 2;  
        int n = 2;

        int height = image.rows();  
        int width  = image.cols(); 
        System.out.println("height:"+height+" width:"+width);
        int ceil_height = height/m;  
        int ceil_width  = width/n;
        System.out.println("ceil_height:"+ceil_height+" ceil_width:"+ceil_width);

        String filename = "D:/cc_sub";

        for(int i = 0; i<m; i++ ) { 
            for(int j = 0; j<n; j++){    
                int a = j*ceil_width;
                int b = i*ceil_height;
                System.out.println(a+","+b+","+ceil_width+","+ceil_height);
                Rect rect = new Rect(j*ceil_width,i*ceil_height,ceil_width,ceil_height);  
                Mat roi_img = new Mat(image,rect); 
                Mat tmp_img = new Mat();

                roi_img.copyTo(tmp_img);

                Highgui.imwrite(filename+i+"_"+j+".jpg", tmp_img);
            }  
        }
    }
}

热门文章
1
input="file" 浏览时只显示指定文件类型 xls、xlsx、csv
2
input 上传第二次不能选择同一文件
3
有时候操作系统的时间与pg的时间不一致
4
java stream 转二维结构为树状结构
5
java Object和Map转化
6
让Node.js项目实现热部署,修改文件避免重启
7
golang  mysql操作
8
java label
9
BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化)
10
linux 自动运行脚本
最新文章
1
postgresql数据库
2
Mac 启动加载文件位置(可设置环境变量)
3
什么是ORM?
4
微信小程序自定义组件设置回调方法
5
java stream 转二维结构为树状结构
6
正则表达式
7
golang  mysql操作
8
利用Opencv实现简单的图片切割(JAVA)
9
PostgreSQL JSON 数据库
10
linux 自动运行脚本
热门标签
mac
java
jvm
微信小程序
小程序
自定义组件
回调
回调方法
golang
postgresql