具体的には、元となる一枚の画像を水平反転・垂直反転・水平垂直反転させたもの4枚(元画像含む)を1つのウィンドウにお互いが重ならないように配置して、万華鏡風にしたいのですが複数の画像を1つのウィンドウに表示する仕方が分からずに困っています。
①元画像
②元画像を水平反転させたもの
③元画像を垂直反転させたもの
④元画像を水平垂直反転させたもの
とすると、
①②
③④
といったような配置をしたいです。
以下のようなコードだとそれぞれ別のウィンドウに表示されてしまいますので、どなたかご教授してくださると大変助かります。
#include<opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char* argv[])
{
cv::Mat src_img = cv::imread("flower.jpg");
cv::Mat dst = cv::Mat((src_img.rows), (src_img.cols), CV_8UC3);
cv::Mat v_img, h_img, b_img;
cv::flip(src_img, v_img, 0); // 水平軸で反転(垂直反転)
cv::flip(src_img, h_img, 1); // 垂直軸で反転(水平反転)
cv::flip(src_img, b_img, -1); // 両方の軸で反転
cv::namedWindow("vertical flip image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO);
cv::namedWindow("horizontal flip image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO);
cv::namedWindow("both flip image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO);
cv::imshow("vertical flip image", v_img);
cv::imshow("horizontal flip image", h_img);
cv::imshow("both flip image", b_img);
cv::waitKey(0);
return 0;
}