码迷,mamicode.com
首页 > 其他好文 > 详细

基于opencv图片切割

时间:2018-08-29 14:33:57      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:mat   public   library   分享图片   ati   row   adl   core   img   

  基于opencv图片切割为n个3*3区块

  工作原因,切割图片,任务急,暂留调通的源码,留以后用.

package com.rosetta.image.test;

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

/**
 * @Author: nya
 * @Date: 18-8-28 下午5:50
 */
public class SplitImage {

    public static void main(String[] args ){
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        Mat image = Highgui.imread("/home/han/images/55.png");
        //System.out.println( "mat = " + image.dump() );

        int m = 5;
        int n = 5;

        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 = "/home/han/images/split/sub";

        int x = m / 3;
        int y = m % 3;
        int z = (x - 1) * 3 + y + 1;
        for(int i = 0; i<z; i++ ) {
            for(int j = 0; j<z; j++){
                int a = i * ceil_width ;
                int b = j * ceil_height;
                System.out.println(a+","+b+","+ceil_width+","+ceil_height);
                Rect rect = new Rect(a,b,3*ceil_width,3*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", roi_img);
            }
        }
    }

}

  图片素材

技术分享图片

基于opencv图片切割

标签:mat   public   library   分享图片   ati   row   adl   core   img   

原文地址:https://www.cnblogs.com/nyatom/p/9552901.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!