c++ - 裁剪给定角度的图像

标签 c++ image opencv

我有一个子图像的中心、倾角(方向)和边的测量值,我想从另一个图像中裁剪,例如:

original image

到:

final image

我设法以正确的倾斜度使用:

    Mat img;
    Point center;
    float angle;
    Mat rotation = getRotationMatrix2D(center, angle, 1.0);
    warpAffine(img, img, rotation, img.size());

但我不知道如何用给定的边切割该区域...我该怎么做?

最佳答案

如果您可以旋转图像,那么您只需要其中一个角位置(例如,右下角)以及要裁剪的图像的宽度和高度。

话虽如此,您可以设置 ROI(感兴趣区域)并裁剪

cv::Rect RegionOfInterest(top_left_x, top_left_y, rectangle_width, rectangle_height);
cv::Mat outputImage;

outputImage = originalImage(RegionOfInterest).clone();

top_left_xtop_left_y 是左上角坐标,rectangle_widthrectangle_height 是宽度和您感兴趣的矩形的高度提取。

关于c++ - 裁剪给定角度的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30464958/

相关文章:

c++ - 如何使用 Eclipse 和 CDT 使用 MinGW 编译和运行 C++?

javascript - 如何获取远程图像以在 Canvas 中显示?

javascript - 在 IE(7 和 8)中移动大尺寸图像非常慢

c++ - 使用 gmp 固定大小的整数...?

c++ - 关于Windows API和C/C++运行时库函数的问题

image - 快速将图像添加到 UIAlertController

c++ - 我可以在 opencv 中使用哪个函数作为 matlab 中的 max()

xcode - 当我尝试通过OpenCv访问网络摄像头时,Xcode引发隐私错误

导入cv2时出现python importError

c++ - sleep 语句在 C++ 中无法正常工作