功能:利用opencv实现图像滑动窗口操作(即利用已知尺寸的窗口遍历整幅图像,形成许多子图像)
vs2013+opencv3.1
2016.10

函数实现:

slidingWnd.h

#ifndef SLIDINGWND_H_
#define SLIDINGWND_H_
//简单的滑动窗口的形成
#include<iostream>
#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;
//基于矩形窗口的图像滑动窗口操作,返回值为滑动窗口的数目
//@src 输入图像
//@wnd 输出结果
//@wndSize 滑动窗口的大小
//@ x_percent 滑动窗口在x方向步长的百分比,x_step=x_percent*wndSize.width
//@ y_percent 滑动窗口在y方向步长的百分比,y_step=y_percent*wndSize.height
int slidingWnd(Mat& src, vector<Mat>& wnd, Size& wndSize, double x_percent, double y_percent)
{int count = 0;  //记录滑动窗口的数目int x_step = cvCeil(x_percent*wndSize.width);int y_step = cvCeil(y_percent*wndSize.height);/*String wndName = "F:\\wnd\\";char temp[1000];*/int64 count1 = getTickCount();double freq = getTickFrequency();//利用窗口对图像进行遍历for (int i = 0; i < src.cols- wndSize.width; i+=y_step){for (int j = 0; j < src.rows- wndSize.height; j+=x_step){Rect roi(Point(j, i), wndSize);Mat ROI = src(roi);wnd.push_back(ROI);count++;}}int64 count2 = getTickCount();double time = (count2 - count1) / freq;cout << "Time=" << time * 100 << "ms"<<endl;cout << count << endl;return count;
}#endif // !SLIDINGWND_H_

main.cpp

#include<iostream>
#include<opencv2\opencv.hpp>
#include"slidingWnd.h"
using namespace std;
using namespace cv;void main()
{String imgName = "F:\\lena_gray.jpg";Mat src = imread(imgName);cvtColor(src, src, COLOR_RGB2GRAY);vector<Mat> wnd;int count=slidingWnd(src, wnd, Size(30, 30),0.3,0.3);imshow("src", src);waitKey(0);
}


转载自:
博主:XAUT_ee
博文地址:https://blog.csdn.net/jiamuju84/article/details/52893320
来源:CSDN

OpenCV--实现图像滑动窗口截取子图操作相关推荐

  1. 使用OpenCV对图像进行两种平移操作(图像的尺寸变化与图像的尺寸不变)

    使用OpenCV对图像进行两种平移操作(图像的尺寸变化与图像的尺寸不变) 图像的平移操作是将图像的所有像素点进行水平或垂直方向上的移动. 平移操作分为两种类型:图像的尺寸变化与图像的尺寸不变.前者保证 ...

  2. 利用Python+opencv进行视频文件的读取和保存,打开笔记本摄像头拍照保存、图像在窗口显示等操作

    版权声明:本文为博主原创文章,转载请附源链接 一.视频文件的读取和保存 Opencv中视频的读入是用VideoCapture函数,保存用的是VideoWriter函数.这两个函数支持的视频格式因电脑系 ...

  3. Stream Processing:滑动窗口的聚集(aggregation)操作的优化算法讲解

    本文将要讲解流处理中滑动窗口聚集操作的相关优化算法.将分别从下面几个方面讲解: 什么是滑动窗口? 什么是滑动窗口的聚集操作? 聚集操作的优化的必要性在哪里? 有哪些优化算法,它们的原理分别是什么? 4 ...

  4. 滑动窗口sliding_window

    1,滑动窗口 滑动窗口,简单来说,就是以动态的边界限定的一组元素. 2,窗口大小:滑动步长 其中边界限定的大小称为窗口大小,边界变化的幅度称为滑动步长. 窗口大小为5,滑动步长为1的滑动窗口 滑动窗口 ...

  5. 时间序列分类05:滑动窗口处理时间序列分类数据

    [时间序列预测/分类] 全系列60篇由浅入深的博文汇总:传送门 在处理时间序列预测或者时间序列分类任务的时候,经常会遇到"滑动窗口(sliding window)"的概念,包括在之 ...

  6. OpenCV 1.x 2.x 编程简介(矩阵/图像/视频的基本读写操作)

    OpenCV 编程简介(矩阵/图像/视频的基本读写操作) Introduction to programming with OpenCV OpenCV编程简介 作者: Gady Agam Depart ...

  7. OpenCV之imgproc 模块. 图像处理(1)图像平滑处理 腐蚀与膨胀(Eroding and Dilating) 更多形态学变换 图像金字塔 基本的阈值操作

    图像平滑处理 目标 本教程教您怎样使用各种线性滤波器对图像进行平滑处理,相关OpenCV函数如下: blur GaussianBlur medianBlur bilateralFilter 原理 No ...

  8. 目标检测项目中面对高分辨率图像的滑动窗口技术(二)(代码开源,超简便API封装,直接调用进行切图及保存)

    在上篇博客简单介绍了滑动窗口技术以及切图程序的使用文档,这篇展示对子图进行反向拼接到原图上(用于对测试集子图预测后结果汇总到原图上)的程序代码以及使用说明. 所需模块:numpy.pandas.mat ...

  9. OpenCV 编程简单介绍(矩阵/图像/视频的基本读写操作)

    PS. 因为csdn博客文章长度有限制,本文有部分内容被截掉了. 在OpenCV中文站点的wiki上有可读性更好.而且是完整的版本号,欢迎浏览. OpenCV Wiki :<OpenCV 编程简 ...

最新文章

  1. 百度小程序opencard书法字典名家书法等测试日志记录
  2. C语言写的程序如何控制计算机硬件
  3. 十招教你学会软件破解(转)
  4. 互联网日报 | 7月3日 星期六 | 滴滴回应被网络安全审查;小米启动“青年工程师激励计划”;阿里成立生活服务板块...
  5. 谱比法计算岩石的品质因子的c语言程序,地层品质因子计算方法及系统与流程...
  6. DNSPod揭6省断网重大事故内幕:网游私服恶斗
  7. windows下maven的使用
  8. 5. 公元二OO七年
  9. 笔记︱虚拟变量回归=差异显著(方差分析)+差异量化(系数值)
  10. 免费的3D GIS 软件,特点与应用领域介绍
  11. 原生 js 生成二维码
  12. DS1302时钟模块使用讲解附带完整程序
  13. jquery局部打印插件使用
  14. TCP MIN_RTO 辩证考
  15. 莫队算法 --算法竞赛专题解析(26)
  16. java多线程---重入锁ReentrantLock
  17. 来淄博旅游 2055
  18. 打豆豆游戏c语言编程,C语言程序打豆豆(函数版)分享!
  19. IE浏览器——莫名打不开
  20. yum命令下载安装包及依赖包

热门文章

  1. ElasticSearch--Jdbc导入插件
  2. 如何使用Docker轻松集成OnlyOffice和NextCloud--快速搭建私有云办公系统/私有云盘/私有OfficeOnline
  3. BGP——路由通告+IBGP水平分割机制+RR路由反射器(讲解+配置命令)
  4. linux常用yum 安装基本包_linux - yum常用命令
  5. AduSkin - UI 追求极致,永臻完美
  6. java 课后习题 判断用户输入的数是否为质数
  7. 【C语言】scanf()输入浮点型数据
  8. C#LeetCode刷题之#434-字符串中的单词数​​​​​​​(Number of Segments in a String)
  9. freecodecamp_我在1个月内完成了整个freeCodeCamp课程(并记录了所有内容)
  10. gitter 卸载_最佳Gitter渠道:PHP