相关疑难解决方法(0)

旋转cv :: Rect的中心

我有一个图像,我在图像上放置一个矩形.然后我旋转图像.如何在旋转的图像上获得矩形的中心?

或者我可以以某种方式旋转矩形以放置旋转图像?我认为在这种情况下,旋转必须沿着与用于旋转图像的点相同的点进行.

这是放置在其上的矩形的图像.

在此输入图像描述

这是旋转的图像.

在此输入图像描述

这是我用来旋转图像的代码:

cv::Mat frame, frameRotated;
frame = cv::imread("lena.png");

cv::Rect rect(225,250,150,150);
cv::rectangle(frame, rect, cv::Scalar(0,0,255),2);

int theta = 30;
double radians = theta * PI / 180.0;            

double sin = abs(std::sin(radians));
double cos = abs(std::cos(radians));

int newWidth = (int) (frame.cols * cos + frame.rows * sin);
int newHeight = (int) (frame.cols * sin + frame.rows * cos);

cv::Mat targetMat(cv::Size(newWidth, newHeight), frame.type());

int offsetX = (newWidth - frame.cols) / 2;
int offsetY = (newHeight - frame.rows) / 2;

frame.copyTo(targetMat.rowRange(offsetY, offsetY …
Run Code Online (Sandbox Code Playgroud)

opencv rotation rectangles

7
推荐指数
1
解决办法
3323
查看次数

如何在图像旋转后重新映射点?

我有一个数学问题:让我假设我使用带有以下命令的opencv将图像围绕其中心旋转30°:

M = cv2.getRotationMatrix2D((cols/2,rows/2),30,1)
img_rotate = cv2.warpAffine(img,M,(cols,rows))
Run Code Online (Sandbox Code Playgroud)

如果取一个img_rotate的像素(40,40),我怎么知道哪个是原始图像中的相应像素?

编辑:换句话说,当我将旋转应用于图像时,我获得了变换后的图像.是否有可能获得点之间的映射?例如,新图像的(x,y)点对应于原始图像的(x',y')点.

python opencv rotation

4
推荐指数
1
解决办法
6486
查看次数

标签 统计

opencv ×2

rotation ×2

python ×1

rectangles ×1