如何在打开的 cv c++ 中翻转带有角度矩形或任何其他角度形状的图像的特定部分

How to flip particluar part of images with angled rectangle or any other angle shapes in open cv c++

本文关键字:任何 定部 图像 其他 cv c++ 翻转      更新时间:2023-10-16

我需要在opencv中翻转图像的特定部分。我搜索了足够多,但我只有cv::flip()方法来翻转整个图像,我如何通过倾斜矩形或任何其他角度形状从图像中翻转图像的某些部分。

cv::Mat src=imread("memory.png");
cv::Mat dst;             
cv::flip(src, dst, 1); 

上面的代码用于翻转整个图像。 但是我需要按角度翻转图像的某些部分。

假设你的意思是一个轴对齐的矩形区域,你需要定义一个ROI - 感兴趣区域。
您可以使用列和行上的 cv::Range s 或 cv::Rect ctor/运算符执行此操作。

例如:

cv::Mat src=imread("memory.png");
auto roi = cv::Rect(10,10,50,50);// ROI origin is at (10,10) with size 50x50
cv::flip(src(roi), src(roi), 1); // Apply flip operation only inside ROI

您可以在 opencv 中使用区域或 ROI。映像中的所有操作都可以应用于区域。

此代码块可能会有所帮助。

dst = src;
cv::Mat subImg = dst(cv::Range(0, 100), cv::Range(0, 100));
cv::flip(subImg , subImg , 1); 

注意:我没有测试上面的代码。

相关文章: