`

openCV入门----cvSetimageROI函数的使用

 
阅读更多

    上一次介绍了多图像单窗口的使用,其中很重要甚至可以说是至关重要的一步就是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;
}
结果:



 

上述代码的具体设计思路正如上文所述的三个步骤,这里不再赘述!

一个简单的截图效果就出来了!

  • 大小: 202.1 KB
分享到:
评论

相关推荐

    OpenCV-MinGW-Build-OpenCV-4.5.2-x64.zip

    在本压缩包“OpenCV-MinGW-Build-OpenCV-4.5.2-x64.zip”中,提供的是一份已经针对MinGW编译器优化的OpenCV 4.5.2版本,适用于64位Windows系统。 OpenCV 4.5.2是该库的一个稳定版本,它包含了众多新特性和性能提升...

    opencv-4.5.5-1.5.7-API文档-中文版.zip

    赠送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.zip

    OpenCV-MinGW-Build-OpenCV-4.5.0-with-contrib

    opencv-4.5.1-1.5.5-API文档-中英对照版.zip

    赠送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-4.5.5-1.5.7-API文档-中英对照版.zip

    赠送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

    这个压缩包"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

    OpenCvSharp-4.5.2-20210405.rar

    OpenCvSharp-4.1.0-x86-20190417.zip

    这个动态链接库(DLL)包含了OpenCV的所有功能,允许开发者在C#项目中调用OpenCV的各种函数。 2. **LICENSE**:这是OpenCV和OpenCvSharp的许可协议文件,通常遵循BSD或MIT等开源许可,确保用户可以自由地使用、修改和...

    opencv-4.5.1-1.5.5-API文档-中文版.zip

    赠送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 安装包 opencv-4.1.2-vc14_vc15 opencv 安装包 ...

    android-sdk-opencv-4.5.5&opencv-contrib-4.5.5-arm64-v8a

    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 win64版,opencv-python 3.4.1.15 opencv-contrib-python 3.4.1.15,支持版本:python3.4,3.5,3.6

    opencv-python-4.10.0.84.tar.gz

    使用`pip install opencv-python`即可安装这个库。在4.10.0.84版本中,可能包含了性能优化、新功能添加或已知问题的修复。由于这是一个压缩包,解压`opencv-python-4.10.0.84.tar.gz`后,用户可以获得编译好的库文件...

    KD-Tree 开源实现以及 OpenCV KD-Tree 使用

    KD-Tree 开源实现以及 OpenCV KD-Tree 使用

    opencv-4.5.4-android-sdk .zip

    opencv-4.5.4-android-sdk .zip

    opencv-4.6.0-vc14-vc15.exe

    至于压缩包内的"opencv-4.6.0-vc14_vc15.exe"文件,它可能是一个自解压程序,运行后会自动将OpenCV库解压并安装到指定目录,同时可能也会进行一些必要的环境变量配置,以便于在Visual Studio中使用。安装完成后,...

    opencv-python-4.10.0.82.tar.gz

    在实际应用中,cv2是OpenCV-Python接口的导入名称,它是Python中使用OpenCV的主要方式。比如,你可以用cv2.imread()函数来读取图像,cv2.imshow()来显示图像,cv2.imwrite()来保存图像,cv2.cvtColor()来进行色彩...

    PyPI 官网下载 | opencv-python-4.5.3.56.tar.gz

    本篇将深入探讨`opencv-python-4.5.3.56.tar.gz`这个版本的具体内容和使用。 首先,`opencv-python`是OpenCV库的Python绑定,它提供了一个高效且易用的接口,用于处理图像处理、计算机视觉以及深度学习任务。4.5....

    使用py36的opencv3-3.1.0

    使用linux下Anaconda3 python36环境的opencv3 ,亲测可用 收取1个积分谢谢~~

    opencv-4.5.5-opencv-contrib-4.5.5-以及其他OpenCV配置需要的包

    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

Global site tag (gtag.js) - Google Analytics