亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用c++實現(xiàn)OpenCV繪制旋轉(zhuǎn)矩形圖形

 更新時間:2021年08月30日 17:28:53   作者:翟天保Steven  
這篇文章主要給大家介紹了使用c++實現(xiàn)OpenCV繪制圖形旋轉(zhuǎn)矩形的方法案例,通過圖文及代碼形式進(jìn)行了詳細(xì)的描述,有需要的朋友可以參考下,希望可以有所幫助

功能函數(shù)

// 繪制旋轉(zhuǎn)矩形
void DrawRotatedRect(cv::Mat mask,const cv::RotatedRect &rotatedrect,const cv::Scalar &color,int thickness, int lineType)
{
    // 提取旋轉(zhuǎn)矩形的四個角點
	cv::Point2f ps[4];
	rotatedrect.points(ps); 
    // 構(gòu)建輪廓線
	std::vector<std::vector<cv::Point>> tmpContours;    // 創(chuàng)建一個InputArrayOfArrays 類型的點集
	std::vector<cv::Point> contours;
	for (int i = 0; i != 4; ++i) {
		contours.emplace_back(cv::Point2i(ps[i]));
	}
	tmpContours.insert(tmpContours.end(), contours); 
    // 繪制輪廓,即旋轉(zhuǎn)矩形
	drawContours(mask, tmpContours, 0, color,thickness, lineType);  // 填充mask
}

測試代碼

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
void DrawRotatedRect(cv::Mat mask, const cv::RotatedRect &rotatedrect, const cv::Scalar &color,int thickness, int lineType); 
int main()
{
	cv::Mat src = imread("test.jpg");
	cv::Mat result = src.clone();
	cv::RotatedRect rorect(cv::Point(src.cols / 2, src.rows / 2), cv::Size(1000, 800), 50);
	DrawRotatedRect(result, rorect, cv::Scalar(0, 255, 255), 5,16);
	imshow("original", src);
	imshow("result", result);
	waitKey(0);
	return 0;
}
// 繪制旋轉(zhuǎn)矩形
void DrawRotatedRect(cv::Mat mask,const cv::RotatedRect &rotatedrect,const cv::Scalar &color,int thickness, int lineType)
{
          // 提取旋轉(zhuǎn)矩形的四個角點
	cv::Point2f ps[4];
	rotatedrect.points(ps);
          // 構(gòu)建輪廓線
  	std::vector<std::vector<cv::Point>> tmpContours;    
          // 創(chuàng)建一個InputArrayOfArrays 類型的點集
	std::vector<cv::Point> contours;
	for (int i = 0; i != 4; ++i) {
		contours.emplace_back(cv::Point2i(ps[i]));
	}
	tmpContours.insert(tmpContours.end(), contours);

           // 繪制輪廓,即旋轉(zhuǎn)矩形
	drawContours(mask, tmpContours, 0, color,thickness, lineType);  // 填充mask
}

測試效果 

圖1 原圖
圖2 繪制旋轉(zhuǎn)矩形

繪制旋轉(zhuǎn)矩形首先需要得到旋轉(zhuǎn)矩形的位置坐標(biāo),我經(jīng)常配合cv::minAreaRect函數(shù)使用;

得到坐標(biāo)信息后,結(jié)合繪制輪廓線的drawContours函數(shù),即可完成。

以上就是使用c++實現(xiàn)OpenCV繪制圖形旋轉(zhuǎn)矩形的詳細(xì)內(nèi)容,更多關(guān)于c++實現(xiàn)OpenCV繪制的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C語言經(jīng)典例程100例(經(jīng)典c程序100例)

    C語言經(jīng)典例程100例(經(jīng)典c程序100例)

    這篇文章主要介紹了C語言經(jīng)典例程100例,經(jīng)典c程序100例,學(xué)習(xí)c語言的朋友可以參考一下
    2018-03-03
  • C++優(yōu)先級隊列的使用指南與模擬實現(xiàn)

    C++優(yōu)先級隊列的使用指南與模擬實現(xiàn)

    優(yōu)先級隊列是一種特殊的隊列,其中每個元素都有一個與之關(guān)聯(lián)的優(yōu)先級,優(yōu)先級較高的元素會在隊列中較早地被處理,而優(yōu)先級較低的元素會在后續(xù)處理,本文給大家介紹C++優(yōu)先級隊列的使用指南與模擬實現(xiàn),需要的朋友可以參考下
    2023-09-09
  • C++?OpenGL實現(xiàn)球形的繪制

    C++?OpenGL實現(xiàn)球形的繪制

    這篇文章主要主要為大家詳細(xì)介紹了如何利用C++和OpenGL實現(xiàn)球形的繪制,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動手嘗試一下
    2022-07-07
  • C語言動態(tài)內(nèi)存分配的詳解

    C語言動態(tài)內(nèi)存分配的詳解

    這篇文章主要介紹了C語言動態(tài)內(nèi)存分配的詳解的相關(guān)資料,這里提供了實現(xiàn)方法整理和出現(xiàn)錯誤的解決辦法,需要的朋友可以參考下
    2017-07-07
  • 利用C語言實現(xiàn)HashTable

    利用C語言實現(xiàn)HashTable

    根據(jù)KEY從hashtable中獲取接點,步驟是先根據(jù)KEY計算hash值,然后從hashtable中找到指定的接點或者接點鏈表
    2013-09-09
  • 解析C++編程中的選擇結(jié)構(gòu)和switch語句的用法

    解析C++編程中的選擇結(jié)構(gòu)和switch語句的用法

    這篇文章主要介紹了解析C++編程中的選擇結(jié)構(gòu)和switch語句的用法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • C語言 實現(xiàn)輸入任意多個整數(shù)

    C語言 實現(xiàn)輸入任意多個整數(shù)

    這篇文章主要介紹了C語言 實現(xiàn)輸入任意多個整數(shù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • C++使用ADO實現(xiàn)存取圖片的方法

    C++使用ADO實現(xiàn)存取圖片的方法

    這篇文章主要介紹了C++使用ADO實現(xiàn)存取圖片的方法,需要的朋友可以參考下
    2014-07-07
  • OpenCV實現(xiàn)可分離濾波

    OpenCV實現(xiàn)可分離濾波

    這篇文章主要為大家詳細(xì)介紹了OpenCV實現(xiàn)可分離濾波,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C/C++實現(xiàn)數(shù)字與字符串互相轉(zhuǎn)換的多種方法

    C/C++實現(xiàn)數(shù)字與字符串互相轉(zhuǎn)換的多種方法

    在C/C++程序中,會需要把數(shù)字與字符串做出互相轉(zhuǎn)換的操作,用于實現(xiàn)程序想要的效果,下面將介紹多種方法實現(xiàn)數(shù)字與字符串互相轉(zhuǎn)換,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-08-08

最新評論