相关疑难解决方法(0)

旋转图像并裁剪出黑色边框

我的应用程序:我正在尝试旋转图像(使用OpenCV和Python)

旋转图像

目前我开发了以下代码,用于旋转输入图像,用黑色边框填充它,给我A.我想要的是B - 旋转图像中最大可能区域裁剪窗口.我称之为轴对齐的边界框.

这与旋转和裁剪基本相同,但是我无法得到关于该问题的答案.此外,该答案显然仅对方形图像有效.我的图像是矩形的.

代码给A:

import cv2
import numpy as np


def getTranslationMatrix2d(dx, dy):
    """
    Returns a numpy affine transformation matrix for a 2D translation of
    (dx, dy)
    """
    return np.matrix([[1, 0, dx], [0, 1, dy], [0, 0, 1]])


def rotateImage(image, angle):
    """
    Rotates the given image about it's centre
    """

    image_size = (image.shape[1], image.shape[0])
    image_center = tuple(np.array(image_size) / 2)

    rot_mat = np.vstack([cv2.getRotationMatrix2D(image_center, angle, 1.0), [0, 0, 1]])
    trans_mat = np.identity(3)

    w2 = image_size[0] * 0.5
    h2 …
Run Code Online (Sandbox Code Playgroud)

python algorithm opencv aabb

55
推荐指数
6
解决办法
3万
查看次数

计算旋转矩形中的最大矩形

我正在尝试找到计算最大(面积)矩形的最佳方法,该矩形可以包含在旋转的矩形内.

一些图片应该有助于(我希望)可视化我的意思:

具有给定宽度和高度的输入矩形 按角度旋转erctangle 输出内部矩形

给出输入矩形的宽度和高度,以及旋转它的角度.输出矩形不会旋转或倾斜.

我正沿着漫长的路线往下走,我甚至不确定它是否会处理角落的情况(没有双关语).我确信这有一个优雅的解决方案.有小费吗?

编辑:输出矩形点不一定要触摸输入矩形边.(感谢E先生)

language-agnostic algorithm math geometry

54
推荐指数
5
解决办法
1万
查看次数

标签 统计

algorithm ×2

aabb ×1

geometry ×1

language-agnostic ×1

math ×1

opencv ×1

python ×1