要实现图像的中心镜像,可以使用OpenCV的cv::flip()
函数和图像ROI(Region of Interest)来完成。以下是一个示例代码:
#include <opencv2/opencv.hpp>
int main() {
// 读取图像
cv::Mat image = cv::imread("input.jpg", cv::IMREAD_COLOR);
if (image.empty()) {
std::cout << "无法读取输入图像!" << std::endl;
return -1;
}
// 计算中心点坐标
int centerX = image.cols / 2;
int centerY = image.rows / 2;
// 创建输出图像
cv::Mat mirroredImage;
// 创建源ROI
cv::Rect srcROI(centerX, 0, centerX, image.rows);
// 创建目标ROI
cv::Rect dstROI(0, 0, centerX, image.rows);
// 复制原始图像的左半部分到目标ROI
image(srcROI).copyTo(mirroredImage(dstROI));
// 执行中心镜像操作(将左半部分复制到右半部分)
cv::flip(mirroredImage, mirroredImage, 1);
// 显示原始图像和中心镜像后的图像
cv::imshow("Original Image", image);
cv::imshow("Mirrored Image", mirroredImage);
cv::waitKey(0);
return 0;
}
请确保在编译和运行代码之前已经安装了OpenCV库,并将示例中的input.jpg
替换为您自己的输入图片路径。运行程序后,您将会看到显示原始图像和中心镜像后的图像窗口。
内容由零声教学AI助手提供,问题来源于学员提问