利用opencv实现图像滑动窗口操作
来源:互联网 发布:软件开发的基本流程 编辑:程序博客网 时间:2024/05/17 21:55
功能:利用opencv实现图像滑动窗口操作(即利用已知尺寸的窗口遍历整幅图像,形成许多子图像)
vs2015+opencv3.1
2016.10
函数实现#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.heightint 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);}
0 0
- 利用opencv实现图像滑动窗口操作
- 利用滑动窗口实现流量的控制
- OpenCV利用滑动条实现一个开关
- OpenCV图像窗口滚动条实现
- 利用OpenCV实现图像的阈值分割
- 利用OpenCV实现图像边缘直方图输出
- 利用OpenCV实现图像纹理特征提取
- 利用python opencv实现图像自适应二值化
- 利用OpenCV实现图像拼接的代码!
- 利用OpenCV实现图像的叠加
- 利用python opencv实现图像自适应二值化
- OpenCV利用矩阵实现图像旋转
- [转]利用OpenCV实现图像的叠加
- 利用数组操作实现灰度图像的上下左右翻转(C++&opencv)
- 利用数组操作实现灰度图像放大两倍(C++&opencv)
- Pyqt5+matplotlib+opencv实现图像直方图操作
- 题目:利用opencv对一副图像进行腐蚀操作
- HTML5 利用JavaScript 实现图像基本操作
- php 空字符串与 0 之间的关系
- HDU2019
- Eclipse中转换java项目至java Web项目
- Archlinux用aria2加速pacman下载
- HDU2020
- 利用opencv实现图像滑动窗口操作
- HDU2021
- 学习资料
- 第二本 第八章第五题网站图片轮换部分
- 杂花生树(十三)
- Unable to add window ,is your activity running?
- HDU2022
- curses库中的三类输出函数
- GPT硬盘下使用Debian急救模式修复引导