OpenCV下实现单窗口显示多幅图像(C++源码)
2023-09-11 14:15:39 时间
有时我们要在一个窗口中显示多幅图像,以利于我们对比结果。
为了实现这个效果中,在OpenCV中,我们可以在一幅白色背景大图上把各幅图像绘制上去,这其中关键是要计算出各幅图绘制在大图中的哪个区域,并对图像按显示区大小进行相应的缩放处理。
下面的代码可实现在同一窗口中不超过12幅图像的显示,图像比例没有要求。
代码会将每幅图像的宽或高限制在300、200、150三个像素值上,并且保持原图比例,宽和高哪个数值更大,就将哪个的像素值设为300、200、150。
当图像数量为1至4幅时,宽和高限制在300像素;
当图像数量为5至8幅时,宽和高限制在200像素;
当图像数量为9至12幅时,宽和高限制在150像素;
举个例子来说,当图像的宽和高被限制在300像素时,若一幅图像的宽为300像素,高为600像素,则显示到单窗口图像中时,该幅图像会被缩放到宽为100,高为300的图像。
代码及代码中用到的图像请访问下面的页面获取:
https://www.hhai.cc/thread-109-1-1.html
运行结果如下:
相关文章
- qt实现web服务器加载vue应用进行C++和html混合编程-连载【6】-企业级系统开发实战连载系列 -技术栈(vue、element-ui、qt、c++、sqlite)
- C++ opencv高速样例学习——读图显示
- [c++菜鸟]《Accelerate C++》习题解答
- 利用OpenCV的函数HoughCircles()实现霍夫梯度法圆检测时参数dp的值对于最终结果影响是挺大的
- 详解C++标准库<sstream>中的类stringstream,并利用它实现OpenCV下的图片批量读取
- OpenCV-C++选择、提取感兴趣区域(ROI区域)【附用鼠标选取ROI区域的代码】
- 利用C++的std::vector定义OpenCV的MAT数组的方法
- OpenCV各个模块/各个文件夹的含义
- 使用OpenCV的函数createTrackbar()创建窗口滑动条查找图像二值化的最优阈值的C++源码
- 图像线性变换的原理及基于OpenCV的C++实现
- 灰度图像的对数变换原理及OpenCV代码实现
- 图像最大熵阈值分割的详细原理及基于OpenCV的C++代码实现
- 实现图像旋转的MATLAB源码和OpenCV下的C/C++源码
- OpenCV-C++对图像像素的四种遍历操作
- 什么叫高斯噪声,并附用OpenCV函数fill()为图像添加高斯噪声的C++代码
- 使用OpenCV计算图像的轮廓矩的代码
- Opencv中Mat图的长、宽、行、列以及图像像素的概念问题
- C++ OpenCV 图像转换,识别图像轮廓,画矩形
- OpenCV代码:C2065
- OpenCV使用pthread实现多线程加速处理图像(C++)
- VS集成opencv编译C++项目遇到的问题
- OpenCV调用TensorFlow预训练模型
- OpenCV图像的基础叠加
- Qt OpenCV Support Image Type 支持读写的图像格式