上一次介绍了多图像单窗口的使用,其中很重要甚至可以说是至关重要的一步就是cvSetimageROI函数以及其他函数配合使用的地方!代码如下(详细请参考“openCV入门----单窗口多图片显示”博客):
cvSetImageROI(DispImage, cvRect(x, y, (int)(w / scale), (int)(h / scale)));
// Resize the input image and copy the it to the Single Big Image
cvResize(img, DispImage);
// Reset the ROI in order to display the next image
cvResetImageROI(DispImage);
详细解释如下:
1>使用cvSetImageROI函数先将整个图像截取一部分作为你所感兴趣的矩形部分,也就是第N张图片所在的位置(其输入信息包括举行起始点坐标和长、宽),将这个区域赋给DispImage对象进行暂存;
2>使用cvResize函数将img对象按照DispImage(此时是你定义的感兴趣的区域)进行调整(包括图像和大小),使得两者相匹配。也就是说,此时img也就是ROI了,目标图片也就因此放置到了整张图像上去(注意:这里不是只调整大小,而且还调整了图像,两者相互匹配!!!!);
3>使用cvResetImageROI函数释放DispImage所暂存的ROI区域,方便下次继续操作。
以上就是详细地逻辑步骤!
那么我们可以来针对cvSetImageROI函数或者说是这一系列配套函数,做一个类似于图片截取的功能程序!
代码如下:
#include<iostream>
#include"cv.h"
#include"highgui.h"
#include"cxcore.h"
using namespace std;
/*
做一个类似于截图的程序
*/
int main()
{
// 隐藏 console 窗口
//#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")
//首先载入一幅图像
IplImage* img = cvLoadImage("8.png");
//提取出img原图中的ROI区域作为“截图”区域
cvSetImageROI(img, cvRect(10, 10, 200, 200));
//创建一张空的新图像来承载ROI区域图像
IplImage* dst = cvCreateImage(cvSize(200,200),8,3);
cvResize(img, dst);
//cvCopy(img, dst);
//取消ROI区域设置,恢复img
cvResetImageROI(img);
//显示图像
cvNamedWindow("scr", CV_WINDOW_AUTOSIZE);
cvNamedWindow("dst", CV_WINDOW_AUTOSIZE);
cvShowImage("scr", img);
cvShowImage("dst", dst);
cvWaitKey(5000);
system("pause");
cvDestroyWindow("scr");
cvDestroyWindow("dst");
cvReleaseImage(&img);
cvReleaseImage(&dst);
return 0;
}
结果:
上述代码的具体设计思路正如上文所述的三个步骤,这里不再赘述!
一个简单的截图效果就出来了!
相关推荐
在本压缩包“OpenCV-MinGW-Build-OpenCV-4.5.2-x64.zip”中,提供的是一份已经针对MinGW编译器优化的OpenCV 4.5.2版本,适用于64位Windows系统。 OpenCV 4.5.2是该库的一个稳定版本,它包含了众多新特性和性能提升...
赠送jar包:opencv-4.5.5-1.5.7.jar; 赠送原API文档:opencv-4.5.5-1.5.7-javadoc.jar; 赠送源代码:opencv-4.5.5-1.5.7-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.5-1.5.7.pom; 包含翻译后的API文档:...
OpenCV-MinGW-Build-OpenCV-4.5.0-with-contrib
赠送jar包:opencv-4.5.1-1.5.5.jar; 赠送原API文档:opencv-4.5.1-1.5.5-javadoc.jar; 赠送源代码:opencv-4.5.1-1.5.5-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.1-1.5.5.pom; 包含翻译后的API文档:...
赠送jar包:opencv-4.5.5-1.5.7.jar; 赠送原API文档:opencv-4.5.5-1.5.7-javadoc.jar; 赠送源代码:opencv-4.5.5-1.5.7-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.5-1.5.7.pom; 包含翻译后的API文档:...
这个压缩包"OpenCV-MinGW-Build-OpenCV-4.5.0-with-contrib-32bit.zip"是专为在Windows环境下使用MinGW编译器进行C++开发而准备的。MinGW(Minimalist GNU for Windows)是一个小型的GNU开发工具集,它提供了一个不...
OpenCvSharp-4.5.2-20210405.rar
这个动态链接库(DLL)包含了OpenCV的所有功能,允许开发者在C#项目中调用OpenCV的各种函数。 2. **LICENSE**:这是OpenCV和OpenCvSharp的许可协议文件,通常遵循BSD或MIT等开源许可,确保用户可以自由地使用、修改和...
赠送jar包:opencv-4.5.1-1.5.5.jar; 赠送原API文档:opencv-4.5.1-1.5.5-javadoc.jar; 赠送源代码:opencv-4.5.1-1.5.5-sources.jar; 赠送Maven依赖信息文件:opencv-4.5.1-1.5.5.pom; 包含翻译后的API文档:...
opencv 安装包 opencv-4.1.2-vc14_vc15 opencv 安装包 opencv-4.1.2-vc14_vc15 opencv 安装包 opencv-4.1.2-vc14_vc15 opencv 安装包 opencv-4.1.2-vc14_vc15 opencv 安装包 opencv-4.1.2-vc14_vc15 opencv 安装包 ...
1.android 版的opencv-4.5.5 sdk; 2.含有opencv-contrib-4.5.5 扩展模块; 3.可以在android studio 中加载,通过java 层调用,也可以添加so库+头文件的方式在jni 层调用; 4.适用于arm64-v8a架构,即64bit cpu。
opencv-python 3.4.1.15 opencv-contrib-python 3.4.1.15 win64版,opencv-python 3.4.1.15 opencv-contrib-python 3.4.1.15,支持版本:python3.4,3.5,3.6
使用`pip install opencv-python`即可安装这个库。在4.10.0.84版本中,可能包含了性能优化、新功能添加或已知问题的修复。由于这是一个压缩包,解压`opencv-python-4.10.0.84.tar.gz`后,用户可以获得编译好的库文件...
KD-Tree 开源实现以及 OpenCV KD-Tree 使用
opencv-4.5.4-android-sdk .zip
至于压缩包内的"opencv-4.6.0-vc14_vc15.exe"文件,它可能是一个自解压程序,运行后会自动将OpenCV库解压并安装到指定目录,同时可能也会进行一些必要的环境变量配置,以便于在Visual Studio中使用。安装完成后,...
在实际应用中,cv2是OpenCV-Python接口的导入名称,它是Python中使用OpenCV的主要方式。比如,你可以用cv2.imread()函数来读取图像,cv2.imshow()来显示图像,cv2.imwrite()来保存图像,cv2.cvtColor()来进行色彩...
本篇将深入探讨`opencv-python-4.5.3.56.tar.gz`这个版本的具体内容和使用。 首先,`opencv-python`是OpenCV库的Python绑定,它提供了一个高效且易用的接口,用于处理图像处理、计算机视觉以及深度学习任务。4.5....
使用linux下Anaconda3 python36环境的opencv3 ,亲测可用 收取1个积分谢谢~~
opencv-4.5.5-vc14_vc15.exe opencv_contrib-4.5.5.zip cmake-3.24.0-rc1-windows-x86_64.msi jdk-17_windows-x64_bin.msi VTK-8.2.0.zip