rotatedrect類是opencv的基礎類,用於建立旋轉矩形,下面是它的建構函式,包含旋轉中心點、尺寸大小和旋轉角度。建構函式1:
rotatedrect(const point2f& center, const size2f& size, float angle);
center
旋轉矩形的質心
size
旋轉矩形的寬度和高度
angle
順時針方向的旋轉角度。當角度為0°,90°,180°,270°等時,矩形變為右上方的矩形
建構函式2:
rotatedrect(const point2f& point1, const point2f& point2, const point2f& point3);
通過這個建構函式也可以建立旋轉矩形,只需要給出三個點,但是要指定三個點的順序。示例**:
#include #include //巨集定義
#define open
int main()
{ cv::mat srcimage=cv::mat(480,640,cv_8uc3,cv::scalar(150,150,150));
#ifdef close
cv::rotatedrect box(cv::point(320, 240), cv::size(200, 200), 30);
cv::point2f vertex[4];
box.points(vertex);
#endif // close
#ifdef open
//隨機數
cv::rng& rng = cv::therng();
int count = rng.uniform(3,103);
std::vectorpoints;
for (int i=0;i示例**中用了條件編譯,定義open就是獲取所有點的最小包圍矩形,然後由最小包圍矩形獲取它的屬性質心點、大小和角度;定義close就是直接使用質心點、大小和角度建立乙個旋轉矩形。
顯示結果:
opencv 旋轉矩形
構建乙個mat 200 200 mat image 200 200 cv 8uc3,scalar 0 設定乙個旋轉矩形3個引數分別為 質心 矩形中心 矩形長寬100 50 旋轉角度 30 clockwise rotatedrect 函式返回乙個旋轉矩形物件 rotatedrect rrect rot...
OpenCV輪廓篇 旋轉矩形矯正
之前一直這裡很迷,現在做乙個整理測試,下圖搬運。先看一下rotatedrect屬性定義 class cv exports rotatedrect 其中opencv奇葩的角度定義如下 其實觀點點就是我們定義的長和寬和opencv定義的輪廓長寬是不一樣的,所以需要轉化我認知的長於寬,傾斜角度也進行轉化。...
推到 旋轉矩陣公式 旋轉矩陣公式推導
1.在二維平面中 如下圖所示,在xoyxoy平面中有一向量op x,y top x,y t,旋轉 角後變為向量op x y top x y t。據圖可得 x op cos y op sin x op cos y op sin 經旋轉 角後有 x op cos op cos cos sin sin x...