用OpenCV实现在一个窗口上显示多个图像,编译环境:win7 32bit + vs2010 + opencv 2.4.11。
源程序如下:
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
using namespace cv;
using namespace std;
int main(int argc, char* argv[])
{
Mat image1 = imread("fruits.jpg"); //分辨率512*480
Mat image2 = imread("LinuxLogo.jpg"); //分辨率320*240
Mat image3 = imread("WindowsLogo.jpg"); //分辨率320*240
Mat manyImages(480,832,CV_8UC3,Scalar(0,0,0)); //主窗口
Mat image1_1 = manyImages(Rect(0,0,512,480));
Mat image2_2 = manyImages(Rect(512,0,320,240));
Mat image3_3 = manyImages(Rect(512,240,320,240));
resize(image1, image1_1,Size(512,480));
resize(image2, image2_2,Size(320,240));
resize(image3, image3_3,Size(320,240));
imshow("manyImages",manyImages);
waitKey(0);
return 0;
}
有个注意的地方,定义窗口大小时第一个参数是行(高),第二个参数是列(宽)。矩形方法中第三个参数是长(列),第四个参数是高(行)。刚开始时显示不了图像就因为含义搞错了。
仅留存以后参考用。
本文详细介绍如何使用OpenCV在单个窗口中显示多个不同尺寸的图像,通过调整图像大小并将其放置在预定义的位置,实现图像的有效布局。示例代码展示了如何读取图像、调整大小、创建主窗口及显示图像的全过程。

被折叠的 条评论
为什么被折叠?



