簡體   English   中英

Matlab旋轉圖像並將其移到角落

[英]Matlab rotate image and move it to corner

我有一個旋轉矩形的圖像旋轉代碼,但當前矩形仍保留在旋轉圖像的中心。 目前,我需要旋轉圖像,以便矩形角點位於左上角,以便將來可以輕松裁剪。 矩形角點是已知的。

ang = rot*pi/180;

A = [ cos(ang) -sin(ang)  0;
  sin(ang)  cos(ang)  0;
  0  0  1];

T = maketform('affine',A);

OutputImage = imtransform(I,T);

imshow(OutputImage)

圖片: 在此處輸入圖片說明

imtransform具有一種特殊的行為:

imtransform函數會自動移動輸出圖像的原點,以使盡可能多的變換圖像可見。

這種“自動轉換”是使您的輸出移動到不希望的位置的原因。

為了更好地控制轉換,我建議使用tformarray

OutputImage = tformarray( I, maketform('affine',A), ...
                          makeresampler('cubic','fill'),
                          [2 1], [2 1], size(I(:,:,1)), [], 0 );

您可能還考慮使用imrotate圍繞圖像中心旋轉圖像。 有關示例,請參見此答案


可能相關的線程如何裁剪圖像並將其旋轉到邊界框?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM