中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

使用Opencv怎么實(shí)現(xiàn)最小外接矩形和圓-創(chuàng)新互聯(lián)

使用Opencv怎么實(shí)現(xiàn)最小外接矩形和圓?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

成都創(chuàng)新互聯(lián)長(zhǎng)期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為開平企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站制作,開平網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

步驟:將一幅圖像先轉(zhuǎn)灰度,再canny邊緣檢測(cè)得到二值化邊緣圖像,再尋找輪廓,輪廓是由一系列點(diǎn)構(gòu)成的,要想獲得輪廓的最小外接矩形,首先需要得到輪廓的近似多邊形,用道格拉斯-普克抽?。―P)算法,道格拉斯-普克抽稀算法,是將曲線近似表示為一系列點(diǎn),并減少點(diǎn)的數(shù)量的一種算法。

該算法實(shí)現(xiàn)抽稀的過程是:

使用Opencv怎么實(shí)現(xiàn)最小外接矩形和圓

1)對(duì)曲線的首末點(diǎn)虛連一條直線,求曲線上所有點(diǎn)與直線的距離,并找出大距離值dmax,用dmax與事先給定的閾值D相比: 
2)若dmax<D,則將這條曲線上的中間點(diǎn)全部舍去;則該直線段作為曲線的近似,該段曲線處理完畢。

若dmax≥D,保留dmax對(duì)應(yīng)的坐標(biāo)點(diǎn),并以該點(diǎn)為界,把曲線分為兩部分,對(duì)這兩部分重復(fù)使用該方法,即重復(fù)1),2)步,直到所有dmax均<D,即完成對(duì)曲線的抽稀。

#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;
 
int value = 60;
RNG rng(1);
Mat src,gray_img,canny_img,dst;
void callback(int, void*);
int main(int arc, char** argv){ 
 src = imread("2.jpg"); 
 namedWindow("input",CV_WINDOW_AUTOSIZE);
 imshow("input", src);
 cvtColor(src, gray_img, CV_BGR2GRAY);
 namedWindow("output", CV_WINDOW_AUTOSIZE);
 createTrackbar("threshold", "output", &value, 255, callback);
 callback(0, 0);
 waitKey(0);
 return 0;
}
void callback(int, void*) { 
 Canny(gray_img, canny_img, value, 2 * value);
 
 vector<vector<Point>>contours;
 vector<Vec4i> hierarchy;
 findContours(canny_img, contours, hierarchy, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE, Point(0, 0));
 
 vector<vector<Point>> contours_poly(contours.size());
 vector<Rect>poly_rects(contours.size());
 vector<Point2f>ccs(contours.size());
 vector<float>radius(contours.size());
 
 vector<RotatedRect> minRects(contours.size());
 vector<RotatedRect> myellipse(contours.size());
 
 for (int i = 0; i < contours.size(); i++) {
 approxPolyDP(contours[i], contours_poly[i], 20, true);//獲得點(diǎn)數(shù)比較少的近似多邊形
 poly_rects[i] = boundingRect(contours_poly[i]);//從近似多邊形獲得最小外接矩形
 minEnclosingCircle(contours_poly[i], ccs[i], radius[i]);//從近似多邊形獲得最小外接圓
 //多邊形點(diǎn)數(shù)大于5才能繪制帶方向的最小矩形和橢圓
 if (contours_poly[i].size() > 5) {
 minRects[i] = minAreaRect(contours_poly[i]);//從近似多邊形獲得帶方向的最小外接矩形
 myellipse[i] = fitEllipse(contours_poly[i]);//從近似多邊形獲得帶方向的最小外接橢圓
 } 
 }
 
 //繪制
 src.copyTo(dst);
 Point2f pts[4];
 for (int j = 0; j < contours.size(); j++) {
 Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
 rectangle(dst, poly_rects[j], color, 2,8);
 circle(dst, ccs[j], (int)radius[j], color, 2,8);
 
 //繪制帶方向的最小外接矩形和橢圓
 if (contours_poly[j].size() > 5) {
 ellipse(dst, myellipse[j], color, 2);
 minRects[j].points(pts);
 for (int k = 0; k < 4; k++) {
 line(dst, pts[k], pts[(k + 1)%4], color, 2);
 }
 }
 }
 imshow("output", dst);
 
}

關(guān)于使用Opencv怎么實(shí)現(xiàn)最小外接矩形和圓問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.rwnh.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站題目:使用Opencv怎么實(shí)現(xiàn)最小外接矩形和圓-創(chuàng)新互聯(lián)
當(dāng)前地址:http://www.rwnh.cn/article42/dcopec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)微信小程序、關(guān)鍵詞優(yōu)化、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)公司、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
襄汾县| 灵宝市| 泰州市| 龙泉市| 香港| 化隆| 喀喇沁旗| 卢湾区| 鄄城县| 永泰县| 岢岚县| 鄂伦春自治旗| 章丘市| 涞水县| 锦州市| 红安县| 买车| 大姚县| 四川省| 云梦县| 孝义市| 黄骅市| 宁武县| 文水县| 林甸县| 石家庄市| 房山区| 阿坝县| 德钦县| 都江堰市| 雷波县| 孝义市| 简阳市| 庆阳市| 南澳县| 平湖市| 黄山市| 枣强县| 西华县| 察雅县| 甘孜县|