opencv中的橢圓擬合

首先貼一個最簡單的程序:訪問:https://blog.csdn.net/guduruyu/article/details/70069426

//創建一個用于繪制圖像的空白圖    
cv::Mat image = cv::Mat::ones(480, 640, CV_8UC3);  
//設置藍色背景  
image.setTo(cv::Scalar(100, 0, 0));  //輸入擬合點    
std::vector<cv::Point> points;  points.push_back(cv::Point(200, 240));  
points.push_back(cv::Point(300, 400));  
points.push_back(cv::Point(400, 360));  
points.push_back(cv::Point(500, 300));  
points.push_back(cv::Point(500, 200));  
points.push_back(cv::Point(300, 150));  //將擬合點繪制到空白圖上    
for (int i = 0; i < points.size(); i++)  
{  cv::circle(image, points[i], 5, cv::Scalar(0, 0, 255), 2, 8, 0);  
}  //獲取擬合橢圓的外包圍矩形  
cv::RotatedRect rotate_rect = cv::fitEllipse(points);  
//繪制擬合橢圓  
cv::ellipse(image, rotate_rect, cv::Scalar(0, 255, 255), 2, 8);  cv::imshow("image", image);  
cv::waitKey(0);  

其次,這里有關于opencv橢圓擬合的各種定義:https://blog.csdn.net/suky520/article/details/18601307

opencv中的橢圓通過RotatedRect來定義,其center(塊中心(x,y)), size(寬和高,寬小于高), angle(旋轉角)分別對應橢圓的中心,短軸長軸,旋轉角度。?

         RotatedRect box = fitEllipse(pointsf);  //把那些長軸與短軸之比很多的那些橢圓剔除。  if( MAX(box.size.width, box.size.height) > MIN(box.size.width, box.size.height)*8 )  continue;  //繪制輪廓  drawContours(cimage, contours, (int)i, Scalar::all(255), 1, 8);  //繪制橢圓  ellipse(cimage, box, Scalar(0,0,255), 1, CV_AA);  //繪制橢圓  // ellipse(cimage, box.center, box.size*0.5f, box.angle, 0, 360, Scalar(0,255,255), 1, CV_AA);  //注意這里需要乘以0.5
最后,目前opencv3中支持三種橢圓擬合方式:fitEllipse,fitEllipseAMS,fitEllipseDirect,其中第三種來自《 Direct least squares fitting of ellipsees, Fitzgibbon, Pilu and Fischer in Fitzgibbon, A.W., Pilu, M., and Fischer R.B.,Proc. of the 13th Internation Conference on Pattern Recognition, pp 253–257, Vienna, 1996》


可以訪問https://docs.opencv.org/trunk/de/dc7/fitellipse_8cpp-example.html

來看官方的橢圓擬合事例。?


參考鏈接:

1.?https://blog.csdn.net/suky520/article/details/18601307

2.?https://www.cnblogs.com/as3asddd/p/7455712.html

3. https://blog.csdn.net/u012566751/article/details/54345465?

4.?https://blog.csdn.net/guduruyu/article/details/70069426

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258539.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258539.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258539.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

unix c 11

多線程(thread) 操作系統支持多進程&#xff0c;進程內部使用多線程。 進程是 重量級的&#xff0c;擁有自己 獨立的內存空間。 線程是 輕量級的&#xff0c;不需要擁有自己 獨立的內存空間&#xff0c;線程的內存空間&#xff1a;1 共享進程的內存空間 2 每個線程擁有…

C# .net core 使用自定義的WebProxy

為什么80%的碼農都做不了架構師&#xff1f;>>> 因為.net core 的System.Net 中沒有提供WebProxy這個方法,所以可以根據需求實現一個. public class CoreWebProxy : IWebProxy{public readonly Uri Uri;private readonly bool bypass;public CoreWebProxy(Uri uri,…

2015年08月

2015年07月 - 2015年09月 ● 一般而言。。。 一般而言&#xff0c;牙周病輕者有口臭、牙齦紅腫疼痛、刷牙流血等癥狀&#xff0c;嚴重時會造成牙齦萎縮、牙齒敏感、牙齒搖動等情況。口腔沒有在飲食后30分鐘清潔就會逐漸轉化為酸性環境&#xff08;PH值約5.5&#xff09;&#x…

python類匯總_Python 類總結

Python可以繼承多個父類&#xff0c;多重繼承。類支持多個對象的產生&#xff0c;命名空間的繼承&#xff0c;運算符重載1)、類產生多個實例對象Python OOP模型中的兩種對象&#xff1a;類對象和實例對象。類對象提供默認的行為&#xff0c;是實例對象的工廠。實例對象是程序處…

matlab ,python,c++關于格式化輸出數字的表達

我們想要格式化輸出1,2,3&#xff0c;...為001,002,003 ... 那么在matlab,python,c該如何表達呢&#xff1f; matlab: >> filedirsprintf(%03i,10)filedir 010 or >> imagenamenum2str(10,%03d)imagename 010 python: index_str %03d % 10index_str Ou…

讀取Exchange的用戶未讀郵件數的幾種方法

【http://www.cnblogs.com/nbpowerboy/p/3539422.html】 可以使用ExchangeServiceBinding獲取郵件&#xff0c;他相當于outlook, 來獲取服務器的未接受的郵件. 至于 “該帳戶無權模擬所請求的用戶 ” ,是由于在exchange服務器上面沒有配置模擬賬戶. 需要在Exchange Management …

IOS第七天(2:UiTableView 加上數據分離)

****加上數據分離 #import "HMViewController.h" #import "HMStudent.h"interface HMViewController () <UITableViewDataSource> property (weak, nonatomic) IBOutlet UITableView *tableView;/** 數據列表 */ property (nonatomic, strong) NSArr…

觀點:Linux 上的殺毒軟件

剛剛進入二月&#xff0c;在360安全衛士 for Linux瞬間更名為360安全衛士國產系統專版。緊接著不久&#xff0c;Dr.Web 宣布發現一款可能源自 ChinaZ 的 Linux 系統的后門程序。加之又被朝內媒體炒作起來的 OpenSSL 基金會事宜&#xff0c;不由得思緒飄溢&#xff0c;再看看 Li…

使用opencv的LBF算法進行人臉關鍵點檢測

首先下載最新的opencv 和opencv_contrib, 然后按照在Windows下編譯擴展OpenCV 3.1.0 opencv_contrib的方法進行編譯&#xff0c;其中核心一點就是先編譯opencv&#xff0c;再在OPENCV_EXTRA_MODULES_PATH中加入opencv_contrib的modules的路徑。 編譯好了后就可以進行人臉關鍵…

scala case class 繼承_數字硬件系統設計之一:Scala快速入門(2)

原想簡單籠統介紹一下scala&#xff0c;后感覺這么做意思不大&#xff0c;網友看了和沒看一樣&#xff0c;還是應該稍微詳細具體一點&#xff0c;故而把系列編號由(上)(中)(下)&#xff0c;改為(上)(2)(3)(4)(5)....,(上)就是(1)吧&#xff0c;以下內容部分節選于我們即將出版的…

Ubuntu下安裝FTP服務及使用(VSFTPD詳細設置)(二)

vsftpd 作為一個主打安全的FTP服務器&#xff0c;有很多的選項設置。下面介紹了vsftpd的配置文件列表&#xff0c;而所有的配置都是基于vsftpd.conf這個配置文件 的。本文將提供完整的vsftpd.conf的中文說明。學習本文的內容將有助于你初步了解vsftpd的配置文件&#xff0c;但針…

crontab命令

前一天學習了 at 命令是針對僅運行一次的任務&#xff0c;循環運行的例行性計劃任務&#xff0c;linux系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作&#xff0c;因此這個系統服務是默認啟動的。另外, 由于使用者自己也可以設置計劃…

調查顯示企業對 Linux 開發人才需求日漸增長

根據2014年Linux就業報告調查顯示&#xff0c;隨著Linux平臺增長&#xff0c;Linux平臺開發者就業需求較去年提升了7%&#xff0c;技術公司招聘Linux開發經歷的人才需求達到 77%&#xff0c;這是來自Dice和Linux基金會共同對就業市場對Linux人才的全景式調查&#xff0c;調查訪…

求圓和橢圓上任意角度的點的坐標

圓上任意角度的點的坐標 如上圖&#xff0c;給定圓心&#xff08;Cx,Cy&#xff09;,半徑為R&#xff0c; 求θ\thetaθ對應的點的坐標&#xff1f; 此處θ\thetaθ是相對于水平軸的角度。 顯然我們可以使用極坐標轉換來求&#xff1a; {pxCxRcos(θ)pyCyRsin(θ)\left\{\begi…

BZOJ ac100題存檔

不知不覺AC100題了&#xff0c;放眼望去好像都是水題。在這里就做一個存檔吧&#xff08;特別感謝各位大神尤其是云神http://hi.baidu.com/greencloud和麗潔姐http://wjmzbmr.com/的blog提供的題解&#xff09; 代碼什么的有時間在放。 1000: AB Problem 好吧&#xff0c;這也算…

Android Build.VERSION.SDK_INT兼容介紹

盡管Android向下兼容不好&#xff0c;但是一個程序還是可以在多個平臺上跑的。向下兼容不好&#xff0c;接口改變&#xff0c;新的平臺上不能用舊的API&#xff0c;舊的平臺更不可能用新的API&#xff0c;不等于一個平臺需要一個APK。可以在高SDK上開發&#xff0c;并在程序中作…

smtp中mailfrom是必須的嗎_你是住在高層建筑中嗎?這是你必須了解的

01PARTONE消防電梯和普通客梯的作用及特點1.消防電梯是在建筑物發生火災時供消防人員進行滅火與救援使用且具有一定功能的電梯。因此&#xff0c;消防電梯具有較高的防火要求&#xff0c;其防火設計十分重要。2.普通電梯均不具備消防功能&#xff0c;發生火災時禁止人們搭乘電梯…

c++ 函數的值傳遞,引用傳遞 和 引用返回的探索

2019獨角獸企業重金招聘Python工程師標準>>> 前言 C的函數參數和返回分為按值傳遞和按引用傳遞,應用到類上面,會涉及到類的 賦值操作 復制函數 構造函數 析構函數 雖然java開發了兩年,但對我而言c我還只是一個初學者.c還有很多陌生的特性需要自己親自探索.這里用實際…

GCD的部分總結

GCD是基于C語言的底層API,用Block定義任務用起來非常靈活便捷. GCD的基本思想是就將操作放在隊列中去執行 (1)操作使用Blocks定義(2)隊列負責調度任務執行所在的線程以及具體的執行時間(3)隊列的特點是先進先出(FIFO)的&#xff0c;新添加至對列的操作都會排在隊尾關于多線程的…

將bgr彩色矩陣歸一化到0-255之間 【RGB image normalization】

參考下面文章&#xff0c;可以使用normalize 函數。 https://blog.csdn.net/kuweicai/article/details/78988886 對于彩色rgb圖像&#xff0c;也可以直接使用以上函數, 參考 https://devtalk.nvidia.com/default/topic/1042100/rgb-image-normalization/?offset8 image cv2…