成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > OpenCV繪制圓端矩形的示例代碼

OpenCV繪制圓端矩形的示例代碼

熱門標簽:湛江智能外呼系統(tǒng)廠家 地圖標注審核表 ai電話機器人哪里好 百度地圖標注沒有了 宿遷星美防封電銷卡 外呼并發(fā)線路 西藏房產(chǎn)智能外呼系統(tǒng)要多少錢 ai電銷機器人源碼 長沙高頻外呼系統(tǒng)原理是什么

本文主要介紹了OpenCV繪制圓端矩形的示例代碼,分享給大家,具體如下:

功能函數(shù)

// 繪制圓端矩形(藥丸狀,pill)
void DrawPill(cv::Mat mask, const cv::RotatedRect rotatedrect, const cv::Scalar color, int thickness, int lineType)
{
	cv::Mat canvas = cv::Mat::zeros(mask.size(), CV_8UC1);
	// 確定短邊,短邊繪制圓形
	cv::RotatedRect rect = rotatedrect;
	float r = rect.size.height / 2.0f;
	if (rect.size.width > rect.size.height) {
		rect.size.width -= rect.size.height;
	}
	else {
		rect.size.height -= rect.size.width;
		r = rect.size.width / 2.0f;
	}
	cv::Point2f ps[4];
	rect.points(ps);
 
	// 繪制邊緣
	std::vectorstd::vectorcv::Point>> tmpContours;
	std::vectorcv::Point> contours;
	for (int i = 0; i != 4; ++i) {
		contours.emplace_back(cv::Point2i(ps[i]));
	}
	tmpContours.insert(tmpContours.end(), contours);
	drawContours(canvas, tmpContours, 0, cv::Scalar(255),5, lineType);  // 填充mask
 
	// 計算常長短軸
	float a = rotatedrect.size.width;
	float b = rotatedrect.size.height;
 
	int point01_x = (int)((ps[0].x + ps[1].x) / 2.0f);
	int point01_y = (int)((ps[0].y + ps[1].y) / 2.0f);
	int point03_x = (int)((ps[0].x + ps[3].x) / 2.0f);
	int point03_y = (int)((ps[0].y + ps[3].y) / 2.0f);
	int point12_x = (int)((ps[1].x + ps[2].x) / 2.0f);
	int point12_y = (int)((ps[1].y + ps[2].y) / 2.0f);
	int point23_x = (int)((ps[2].x + ps[3].x) / 2.0f);
	int point23_y = (int)((ps[2].y + ps[3].y) / 2.0f);
 
	cv::Point c0 = a  b ? cv::Point(point12_x, point12_y) : cv::Point(point23_x, point23_y);
	cv::Point c1 = a  b ? cv::Point(point03_x, point03_y) : cv::Point(point01_x, point01_y);
 
	// 長軸兩端以填充的方式畫圓,直徑等于短軸
	cv::circle(canvas, c0, (int)r, cv::Scalar(255), 5, lineType);
	cv::circle(canvas, c1, (int)r, cv::Scalar(255), 5, lineType);
 
	// 繪制外圍輪廓,如果不這樣操作,會得到一個矩形加兩個圓形,丑。。。
	std::vectorstd::vectorcv::Point>> EXcontours;
	cv::findContours(canvas,EXcontours,cv::RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
	drawContours(mask, EXcontours, 0, color, thickness,lineType);  // 填充mask
}

測試代碼

#include iostream>
#include opencv2/opencv.hpp>
 
using namespace std;
using namespace cv;
 
void DrawPill(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);
	DrawPill(result, rorect, cv::Scalar(0, 255, 255),8,16);
	imshow("original", src);
	imshow("result", result);
	waitKey(0);
	return 0;
}
 
// 繪制圓端矩形(藥丸狀,pill)
void DrawPill(cv::Mat mask, const cv::RotatedRect rotatedrect, const cv::Scalar color, int thickness, int lineType)
{
	cv::Mat canvas = cv::Mat::zeros(mask.size(), CV_8UC1);
	// 確定短邊,短邊繪制圓形
	cv::RotatedRect rect = rotatedrect;
	float r = rect.size.height / 2.0f;
	if (rect.size.width > rect.size.height) {
		rect.size.width -= rect.size.height;
	}
	else {
		rect.size.height -= rect.size.width;
		r = rect.size.width / 2.0f;
	}
	cv::Point2f ps[4];
	rect.points(ps);
 
	// 繪制邊緣
	std::vectorstd::vectorcv::Point>> tmpContours;
	std::vectorcv::Point> contours;
	for (int i = 0; i != 4; ++i) {
		contours.emplace_back(cv::Point2i(ps[i]));
	}
	tmpContours.insert(tmpContours.end(), contours);
	drawContours(canvas, tmpContours, 0, cv::Scalar(255),5, lineType);  // 填充mask
 
	// 計算常長短軸
	float a = rotatedrect.size.width;
	float b = rotatedrect.size.height;
 
	int point01_x = (int)((ps[0].x + ps[1].x) / 2.0f);
	int point01_y = (int)((ps[0].y + ps[1].y) / 2.0f);
	int point03_x = (int)((ps[0].x + ps[3].x) / 2.0f);
	int point03_y = (int)((ps[0].y + ps[3].y) / 2.0f);
	int point12_x = (int)((ps[1].x + ps[2].x) / 2.0f);
	int point12_y = (int)((ps[1].y + ps[2].y) / 2.0f);
	int point23_x = (int)((ps[2].x + ps[3].x) / 2.0f);
	int point23_y = (int)((ps[2].y + ps[3].y) / 2.0f);
 
	cv::Point c0 = a  b ? cv::Point(point12_x, point12_y) : cv::Point(point23_x, point23_y);
	cv::Point c1 = a  b ? cv::Point(point03_x, point03_y) : cv::Point(point01_x, point01_y);
 
	// 長軸兩端以填充的方式畫圓,直徑等于短軸
	cv::circle(canvas, c0, (int)r, cv::Scalar(255), 5, lineType);
	cv::circle(canvas, c1, (int)r, cv::Scalar(255), 5, lineType);
 
	// 繪制外圍輪廓,如果不這樣操作,會得到一個矩形加兩個圓形,丑。。。
	std::vectorstd::vectorcv::Point>> EXcontours;
	cv::findContours(canvas,EXcontours,cv::RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
	drawContours(mask, EXcontours, 0, color, thickness,lineType);  // 填充mask
}

測試效果

 

圖1 原圖

 

圖2 繪制圓端矩形

繪制圓端矩形其實就是繪制了一個旋轉矩形,然后分析哪個軸更長,就在哪個軸上的兩端畫圓,再取外圍輪廓,大功告成,通俗來講就畫了一個矩形兩個圓,如圖3所示。

 

圖3 繪制邏輯

不過注意,這個圖形最好不要超過圖像邊界,因為超過后再分析外圍輪廓,它認為的外圍就到了內(nèi)部,如圖4所示。

 

圖4 外圍線

然后,你就會得到一個奇葩圖形,如圖5所示。

圖5 示意圖

到此這篇關于OpenCV繪制圓端矩形的示例代碼的文章就介紹到這了,更多相關OpenCV 圓端矩形內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python opencv minAreaRect 生成最小外接矩形的方法
  • 詳解利用OpenCV提取圖像中的矩形區(qū)域(PPT屏幕等)
  • python opencv實現(xiàn)圖片旋轉矩形分割
  • python opencv實現(xiàn)旋轉矩形框裁減功能
  • OpenCV 圓與矩形識別的方法
  • opencv提取外部輪廓并在外部加矩形框
  • python3+openCV 獲取圖片中文本區(qū)域的最小外接矩形實例
  • Opencv繪制最小外接矩形、最小外接圓
  • openCV提取圖像中的矩形區(qū)域

標簽:普洱 海南 南平 林芝 漯河 盤錦 大同 寧夏

巨人網(wǎng)絡通訊聲明:本文標題《OpenCV繪制圓端矩形的示例代碼》,本文關鍵詞  OpenCV,繪制,圓端,矩,形的,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《OpenCV繪制圓端矩形的示例代碼》相關的同類信息!
  • 本頁收集關于OpenCV繪制圓端矩形的示例代碼的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    粉嫩蜜臀av国产精品网站| 午夜精品久久久久久久蜜桃app| 久久久久久久久蜜桃| 奇米网一区二区| 国产又黄又粗又猛又爽| 羞羞视频在线免费国产| 欧美国产亚洲视频| 亚洲国产成人私人影院tom| 国产福利视频在线| 国产精品视频一区二区久久| 日本一二三区视频免费高清| 国产剧情日韩欧美| 久久99伊人| 欧美日韩乱国产| 日韩欧美在线1卡| 欧美人成在线视频| 大胆人体一区二区| 中文字幕一区二区在线观看| 麻豆九一精品爱看视频在线观看免费| 九九热国产在线| 在线国产福利网站| 美女在线观看视频一区二区| 日韩一区二区三区精品视频第3页| 日本一区二区在线不卡| 久久99久国产精品黄毛片入口| 亚洲成人av资源| 亚洲欧美另类动漫| 中文字幕第八页| 视频一区在线免费观看| 4hu永久免费入口| 欧美成人明星100排名| 中文字幕在线视频免费观看| 91成人免费观看| 色综合中文字幕| 久久久国产综合精品女国产盗摄| 成人天堂yy6080亚洲高清| 男人搞女人网站| 性金发美女69hd大尺寸| 亚洲黄页网在线观看| 日本电影二区| 乱人伦xxxx国语对白| 欧美黄色一级| 男人日女人下面视频| 免费看特级毛片| 亚洲第一网站男人都懂| 成人爽a毛片一区二区| 国产精品视频精品视频| 日本视频www| 亚洲AV成人无码精电影在线| 欧美日韩在线亚洲一区蜜芽| 中文字幕高清20页| 成人福利在线视频| 最近免费观看高清韩国日本大全| 精品久久国产一区| 精品精品国产三级a∨在线| 狠狠色噜噜狠狠狠| 亚洲精品视频久久| 天天影视欧美综合在线观看| a网站在线观看| 97国产精品人人爽人人做| 久久男人资源站| 国产传媒在线看| 国产伦精品一区二区三区高清版禁| 欧美一级高清免费| 美女网站色免费| 26uuu精品一区二区三区四区在线| 国产精品亚洲欧美日韩一区在线| 伦理电影国产精品| 成午夜精品一区二区三区软件| 91成人国产精品| 精品国产乱码久久久久久蜜臀网站| 亚洲最大天堂网| 欧美日韩在线视频播放| 亚洲国产中文字幕在线视频综合| 先锋影音男人| 三级全黄的视频在线观看| 激情在线小视频| 全球最大av网站久久| 97精品人妻一区二区三区蜜桃| 性猛交富婆╳xxx乱大交一| 亚洲专区免费| 亚洲另类在线一区| 91国内在线播放| 美女视频黄a视频全免费观看| 中文字幕av久久爽av| 97人妻一区二区精品免费视频| 欧美高清视频一区| 国产成人亚洲综合色影视| 少妇久久久久久被弄高潮| 久久综合五月天| 日韩精品一区二区三区在线视频| 日本欧美在线看| 免费在线观看视频| 欧美黑人性猛交xxx| 无码国精品一区二区免费蜜桃| 97精品电影院| 欧美性free免费| 青青国产精品| 国产夫绿帽单男3p精品视频| 国产精品夜夜嗨| 亚洲热线99精品视频| 91亚洲人成网污www| 在线久久视频| 久久久久国色av免费观看性色| 精品视频在线观看一区| 欧美在线极品| 一本大道av一区二区在线播放| 性欧美videos粗暴| 自拍视频在线看| 国产成人a级片| 亚洲婷婷免费| 国产淫片在线观看| 成年人免费影院| 久久久久久亚洲精品中文字幕| 在线观看中文字幕| 亚洲精品乱码久久| 婷婷综合一区| 中文字幕一区二区三区色视频| 日韩高清在线观看| 国产中文字幕乱人伦在线观看| 亚洲一区二区在线免费| 欧美在线视频一区二区| 福利视频导航一区| 激情五月激情综合| 欧美日韩综合在线| 美女免费黄视频网站| 黄视频在线观看网站| 日韩三级在线观看| 久久久久久9999| 欧美午夜视频在线观看| 免费网站永久免费观看| 中文字幕在线观看视频一区| 日韩激情电影免费看| www.se五月| 欧洲一区二区三区免费视频| 国产又爽又黄又刺激的软件| 国产真实乱全部视频| 国产精选在线观看91| 午夜欧美大片免费观看| 亚洲欧美网站| 热久久美女精品天天吊色| 色呦呦在线视频| 电影一区电影二区| 国产精品一区二区三区高清在线| 国产精品高清网站| 黄色网页网址在线免费| 欧美极品美女视频| 91成人看片| 中文字幕 欧美 日韩| 成人av影院在线观看| 日韩一区二区在线观看视频| 99热精品久久| 国产日韩一区二区三区在线| 黄色香蕉视频在线观看| 亚洲欧美日韩爽爽影院| 日韩电影在线视频| 中文字幕国产传媒| 69亚洲乱人伦| 91精品国产麻豆国产在线观看| 国产午夜精品一区理论片| 精品国产乱码久久久久酒店| 中文字幕免费在线看线人动作大片| 成人性做爰片免费视频| 久久伊人精品一区二区三区| 综合色天天鬼久久鬼色| 国际精品欧美精品| 人人在草线视频在线观看| 99爱视频在线观看| 国v精品久久久网| 蜜桃久久久久久久| 一区中文字幕在线观看| 日本高清无吗v一区| 欧美tickling挠脚心丨vk| 久久成人18免费观看| 97超级碰碰碰久久久| 激情欧美一区二区三区在线观看| 蜜桃精品视频在线观看| 性折磨bdsm欧美激情另类| 亚洲欧美国产中文| 鲁一鲁一鲁一鲁一av| 91国产精品一区| 久久久精品国产99久久精品芒果| 最新电影电视剧在线观看免费观看| 久操视频在线免费观看| 国产精品久久久久久久天堂| 国产又大又黄视频| 欧美三级日韩三级| 强迫凌虐淫辱の牝奴在线观看| 亚洲视频第二页| 一区二区三区精品久久久| 国产1区2区3区| 性欧美videos另类喷潮| 中文字幕久久一区| 亚洲老板91色精品久久| 最新中文在线视频| 91插插视频| 亚洲欧美精选| 日韩一二区视频| 成人黄色片在线| 黄色av免费在线| 婷婷国产v国产偷v亚洲高清| 色琪琪丁香婷婷综合久久| 亚洲综合视频网站| a毛片在线观看| 欧洲精品在线观看| 日韩综合在线观看| 葵司免费一区二区三区四区五区| 又色又爽又黄18网站| 3d精品h动漫啪啪一区二区| 日本黄色播放器| 亚洲女爱视频在线| 91高清视频免费观看| 欧美77777免费视频| av中文字幕免费在线观看| 国产毛片一区| 国产精品久久视频| 国内一卡2卡三卡四卡在线| 潘金莲一级淫片aaaaa免费看| 欧美亚洲国产一区| 国产精品无码2021在线观看| 一区二区三区在线|网站| 免费中文字幕日韩| 黄色大片在线免费观看| 夜夜爽妓女8888视频免费观看| 国产亚洲精品美女久久久m| 国产精品69久久久久孕妇欧美| 91网站免费看| 怡红院精品视频| 一色屋精品亚洲香蕉网站| 中文字幕无人区二| 视频在线在亚洲| 亚洲黄网站在线观看| 九九热这里只有在线精品视| 精品久久久久久国产| 日本精品国语自产拍在线观看| 美女大黄三级视频在线观看| 福利一区福利二区微拍刺激| 久久99精品久久久久久秒播放器| bl动漫在线观看| 国产精品精品视频| 亚洲男女在线观看| 四虎海外永久免费网址| 色狼人综合干| 亚洲大尺度视频在线观看| 精品动漫av| 日韩成人毛片视频| 懂色av粉嫩av蜜臀av| 免费观看一二区视频网站| 在线视频一区观看| 肉色超薄丝袜脚交一区二区| 在线观看中文字幕不卡| 日本精品黄色| 91美女精品| www日韩中文字幕在线看| 中文一区在线播放| 日韩精品极品| 无码人妻精品一区二区三| 中文字幕日本视频| 人妻丰满熟妇aⅴ无码| 亚洲欧洲一区二区| 中文字幕剧情在线观看一区| 国产黄在线观看免费观看不卡| **三级三级97片毛片| 波多野结衣一二三四区| 国产精品久久久一区二区三区| 久久久噜久噜久久综合| 国产免费一区二区视频| 精品国精品国产尤物美女| 日本五级黄色片| 亚洲一区二区四区蜜桃| 中文字幕av在线| 国精产品一区一区三区免费视频| 日本成人三级电影网站| 毛片中文字幕| 中国女人精69xxxxxx视频| 尤物网址在线观看| 欧美不卡视频一区发布| 欧美日韩一区二区三区不卡视频| 亚洲国产中文在线二区三区免| 青青草成人在线观看| 日本黄色免费在线| 久久成人18免费观看| 91免费看视频| 欧美日韩国产经典色站一区二区三区| 91av网站在线播放| 日本在线观看一区二区三区| 亚洲精品永久www嫩草| 国产精品免费久久久| 欧美一区二区在线观看| 日本一区高清| 盗摄精品av一区二区三区| 国产乡下妇女三片| 羞羞视频在线免费国产| 黑人巨大狂躁日本妞在线观看| 色狠狠一区二区| 91社区在线| 久久草在线视频| 亚洲天堂第二页| 国产精品久久久| 91丨porny丨在线中文| 欧美视频一区二| 成人av在线网站| 日本免费视频| www.日本久久| 亚洲一卡二卡三卡四卡五卡| 亚洲欧美在线另类| 色综合久久综合网97色综合| 欧美 日韩 综合| 老司机午夜福利视频| 综合久草视频| 日韩中文字幕免费看| 中文字幕在线中文字幕二区| 亚洲精品久久久久中文字幕欢迎你| 亚洲精品自在久久| 国产精品无码一本二本三本色| 亚洲最大成人综合| 日韩精品视频免费在线观看| 无码免费一区二区三区免费播放| 日本午夜精品久久久久| 又黄又色的网站| 在线欧美一区二区| 亚洲欧美日韩在线综合| 久久国产香蕉视频| 午夜视频在线观看一区二区三区| 欧美日韩亚洲一区二区三区四区| 国产污污在线观看| jizzjizz视频| 喷白浆一区二区|