1. 程式人生 > >基於opencv圖片切割

基於opencv圖片切割

sub h+ adl write ack idt sys alt open

  基於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圖片切割