基于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); } } } }
图片素材
原文地址:https://www.cnblogs.com/nyatom/p/9552901.html
时间: 2024-10-12 02:54:06