玩图像处理的时候发现处理结果总是单张图像单个窗口,于是封装了一个ShowImage方法实现多图单窗口输出。
Tip:首先需要安装easyx库才能包含graphics头,easyx安装直接到easyx官网下载运行安装即可。
#include <opencv2/opencv.hpp>
#include <vector>
#include <graphics.h>
using namespace cv;
using namespace std;
void ShowImage(int num) { //通过改变num值改变同窗口图片数
vector<IMAGE> src(num);
int width = 400; //可以通过改变宽高实现改变图片显示的大小
int height = 300;
initgraph(width * (num > 1 ? 2 : 1) + 1, height * (num / 2 + num % 2) + 1, 1);
for (int i = 0; i < num; ++i) {
char dst[10];
sprintf_s(dst, "%d.jpg", i+1); //此处设置图片名称为1.jpg、2.jpg
loadimage(&src[i], dst, width, height);
putimage((width + 1) * (i % 2), (height + 1) * (i / 2), &src[i]);
}
}
int main() {
Mat rgb, hsv;
rgb = imread("1.jpg");
cvtColor(rgb, hsv, COLOR_BGR2HSV);
imwrite("2.jpg", hsv);
ShowImage(2);
while (1);
closegraph();
return 0;
}