简单来说就是,声明一个大的Mat 作为最后显示的窗口,再把两个图片复制进去,注意的是两个图片的类型要一样。
1.读取原图,显示
2.按照0通道读取,转换成灰度图,并保存
3.按照1通道读取灰度图
4.一个窗口,两张图片
完整代码
#include<opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
void liang(Mat &dst1, Mat&dst2, Mat&dst3)
{
int cols = dst1.cols + 5 + dst2.cols;
int rows = dst1.rows;
dst3.create(rows,cols, dst1.type());
dst1.copyTo(dst3(Rect(0, 0, dst1.cols, dst1.rows)));
dst2.copyTo(dst3(Rect(dst1.cols, 0, dst2.cols, dst2.rows)));
imshow("新", dst3);
waitKey(0);
}
int main()
{
Mat img1, img2, img3;
img1 = imread("猫1.jpg", 1);
imshow("img1", img1);
waitKey(0);
img2 = imread("猫1.jpg", 0);
imwrite("灰度图.jpg", img2);
img3 = imread("灰度图.jpg", 1);
Mat da;
liang(img1, img3, da);
}