基于opencv图片切割

摘要:
  基于opencv图片切割为n个3*3区块工作原因,切割图片,任务急,暂留调通的源码,留以后用.packagecom.rosetta.image.test;importorg.opencv.core.Core;importorg.opencv.core.Mat;importorg.opencv.core.Rect;importorg.opencv.highgui.Highgui;/***@Aut
  基于opencv图片切割为n个3*3区块

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

packagecom.rosetta.image.test;
importorg.opencv.core.Core;
importorg.opencv.core.Mat;
importorg.opencv.core.Rect;
importorg.opencv.highgui.Highgui;
/**
 * @Author: nya
 * @Date: 18-8-28 下午5:50
 */
public classSplitImage {
    public static voidmain(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);
        int ceil_height = height/m;
        int ceil_width  = width/n;
        System.out.println("ceil_height:"+ceil_height+" ceil_"+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 = newMat(image,rect);
                //Mat tmp_img = new Mat();
                //roi_img.copyTo(tmp_img);

                Highgui.imwrite(filename+"_"+i+"_"+j+".jpg", roi_img);
            }
        }
    }
}
  图片素材

基于opencv图片切割第1张

免责声明:文章转载自《基于opencv图片切割》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MySQL数据库《Python》hashlib模块、configparser模块、logging模块下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java的各类型数据在内存中分配情况详解

1.      有这样一种说法,如今争锋于IT战场的两大势力,MS一族偏重于底层实现,Java一族偏重于系统架构。说法根据无从考证,但从两大势力各自的社区力量和图书市场已有佳作不难看出,此说法不虚,但掌握Java的底层实现对Java程序员来说是至关重要的,本文介绍了Java中的数据在内存中的存储。      2 内存中的堆(stack)与栈(heap) ...

WindowState=WindowState.Maximized不遮住任务栏(WPF)

前提:WindowStyle="None" ResizeMode="NoResize" Step1:在窗体构造函数中加SourceInitialized事件 publicMainWindow() { InitializeComponent(); SourceInitialized +=M...

iphone上如何绘制柱状图(转载,整理)

曾经在cocoachina上看到过绘制的立体的柱状图,效果非常不错,下面是链接, http://www.cocoachina.com/bbs/read.php?tid-9462-toread-1.html NTChartView.h #import <Foundation/Foundation.h> @interface NTChartV...

《QT Creator快速入门》第十章:2D绘制(3)

1、绘制文字 使用QPainter::drawText()来绘制文字: void Widget::paintEvent(QPaintEvent *event) { QPainter painter(this); QRectF rect(10.0, 10.0, 580.0, 280.0); painter.setPen(Qt::r...

第三章 霍夫变换(Hough Transform)

主要内容: 霍夫变换的作用 霍夫变换检测直线的原理 霍夫变换检测圆的原理 OpenCV中的霍夫变换    1、霍夫变换检测直线原理       霍夫变换,英文名称Hough Transform,作用是用来检测图像中的直线或者圆等几何图形的。       一条直线的表示方法有好多种,最常见的是 y=mx+b 的形式。 假设有一幅图像,经过滤波,边缘检...

opencv linux

http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html https://www.google.com.hk/search?q=opencv+linux&ie=utf-8&oe=utf-8&gws_rd=cr&ei=f...