基于opencv图片切割

  基于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

基于opencv图片切割的相关文章

基于OpenCV的图片卡通化处理

学习OpenCV已有一段时间,除了研究各种算法的内容,在空闲之余,根据书本及资料的引导,尝试结合图像处理算法和日常生活联系起来,首先在台式机上(带摄像头)完成一系列视频流处理功能,开发平台为Qt5.3.2+OpenCV2.4.9. 本次试验实现的功能主要有: 调用摄像头捕获视频流: 将帧图像转换为素描效果图片: 将帧图像卡通化处理: 简单地生成"怪物"形象: 人脸肤色变换. 本节所有的算法均由类cartoon中的函数cartoonTransform()来实现: // Frame:输入每

SmileyFace——基于OpenCV的人脸人眼检测、面部识别程序

项目地址 https://github.com/guoyaohua/SmileyFace 开发环境 Visual Studio 2010 MFC + OpenCV 功能描述 静态图像人脸检测 视频人脸追踪检测 摄像头人脸检测 人脸切割显示 实时面部识别 样本自动采集 基于面部识别的程序锁 系统框图 人脸检测 人脸识别 系统截图 本程序以用户体验为中心,界面简洁.明了.易于操作.即使第一次使用该应用,也可以流利的操作. 1.主界面 2.人脸检测效果图--标准正脸 3.人脸检测效果图--人脸集 4.

Java基于opencv实现图像数字识别(一)

Java基于opencv实现图像数字识别(一) 最近分到了一个任务,要做数字识别,我分配到的任务是把数字一个个的分开:当时一脸懵逼,直接百度java如何分割图片中的数字,然后就百度到了用BufferedImage这个类进行操作:尝试着做了一下,做到灰度化,和二值化就做不下去了:然后几乎就没有啥java的资料了,最多的好像都是c++,惹不起.惹不起...... 我也想尝试着用c++做一下,百度到了c++基于opencv来做图像识别的:但是要下vs啊,十几个g呢,我内存这么小,配置这么麻烦,而且vs

Csharp调用基于Opencv编写的类库文件

现在将Csharp调用基于Opencv编写的类库文件(Dll)的方法定下来,我取名叫做GreenOpenCsharpWarper,简称GOCW. 一.CLR编写的DLL部分 1.按照正常方法引入Opencv; 2.提供接口函数,进行图像处理(这里只是实现了cvtColor,实际过程中可以用自己编写的复杂函数) String^  Class1::Method(cli::array<unsigned char>^ pCBuf1){     pin_ptr<System::Byte> p

基于 OpenCV 的人脸识别

基于 OpenCV 的人脸识别 一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenCV 已被广泛运用在各种项目上,从谷歌街景的图片拼接,到交互艺术展览的技术实现中,都有 OpenCV 的身影. OpenCV 起始于 1999 年 Intel 的一个内部研究项目.从那时起,它的开发就一直很活跃.进化到现在,它已支持如 OpenCL 和 OpenGL 的多种现代技术,也支持如 iOS

基于opencv和mfc的摄像头采集代码(GOMFCTemplate2)

基于opencv和mfc的摄像头采集框架(GOMFCTemplate2) 编写带界面的图像处理程序,选择opencv+mfc是一种很好的选择:在读取摄像头数据方面,网上的方法很多,其中shiqiyu的camerads的方法是较好的. 基于现有资料,通过在实际项目中的积累,我总结出来一套结合opencv和mfc的摄像头采集框架.具有以下特点: 1.基于directshow,兼容性好,速度快.到目前为止,无论是工业相机还是普通相机,没发现不兼容的: 2.摄像头部分通过线程读取,保证界面的运行流畅:

YUV格式转换为RGB(基于opencv)

之前写代码过程中需要将YUV格式视频中每帧提取出来,然后保存为图片.网上普遍有两种方法,第一种是通过opencv自带cvCvtColor,但是这种方法有bug,得到的图片会泛白.第二种方法是公式法. 法一:opencv自带cvCvtColor 说明:这种方法会出现图片"泛白",具体原因网上是说cvCvtColor这个函数左右协议不同,不太懂. 代码: void FileWriteFrames(){ char *filename = "E:\\openCV\\zhang\\yu

基于opencv和QT的瞳孔精确检测程序

本文为作者为毕业设计所写的瞳孔精确检测程序,谢绝任何形式的转载. 本篇博客是在作者的前两篇博客 <基于QT和opencv的摄像头(本地图片)读取并输出程序>和< 基于opencv和QT的人脸(人眼)检测程序>的基础上进行开发的.主要原理是:针对已经检测到的人眼区域图像,利用边缘检测和Hough变换实现瞳孔的精确检测. 首先建立一个图像处理类,对每一帧图像进行处理. class ImgProcess { private: Mat inimg;//输入图像 Mat outimg;//输

Java基于opencv实现图像数字识别(二)—基本流程

Java基于opencv实现图像数字识别(二)-基本流程 做一个项目之前呢,我们应该有一个总体把握,或者是进度条:来一步步的督促着我们来完成这个项目,在我们正式开始前呢,我们先讨论下流程. 我做的主要是表格中数字的识别,但这个不是重点.重点是通过这个我们可以举一反三,来实现我们自己的业务. 图像的识别主要分为两步:图片预处理和图像识别:这两步都很重要 图像预处理: 1. 图像灰度化:二值化 2. 图像降噪,去除干扰线 3. 图像腐蚀.膨胀处理 4. 字符分割 5. 字符归一化 图像识别: 1.