最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Opencv提取連通區(qū)域輪廓的方法

 更新時(shí)間:2020年03月21日 10:40:00   作者:Timmy_Y  
這篇文章主要為大家詳細(xì)介紹了Opencv提取連通區(qū)域輪廓的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Opencv提取連通區(qū)域輪廓的具體代碼,供大家參考,具體內(nèi)容如下

在進(jìn)行圖像分割后,可能需要對(duì)感興趣的目標(biāo)區(qū)域進(jìn)行提取,比較常用的方法是計(jì)算輪廓。

通過(guò)輪廓可以獲得目標(biāo)的一些信息:

(1)目標(biāo)位置

(2)目標(biāo)大小(即面積)

(3)目標(biāo)形狀(輪廓矩)

當(dāng)然,輪廓不一定代表希望目標(biāo)區(qū)域,閾值分割時(shí)可能造成一部分信息丟失,因此可以計(jì)算輪廓的質(zhì)心坐標(biāo),再進(jìn)行漫水填充。

程序中有尋找質(zhì)心+填充,但效果不好,因此就不放填充后的圖了。

實(shí)驗(yàn)結(jié)果:

#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <stdio.h>
 
using namespace cv;
using namespace std;
 
vector<vector<Point> > contours; //輪廓數(shù)組
vector<Point2d> centers; //輪廓質(zhì)心坐標(biāo) 
vector<vector<Point> >::iterator itr; //輪廓迭代器
vector<Point2d>::iterator itrc; //質(zhì)心坐標(biāo)迭代器
vector<vector<Point> > con; //當(dāng)前輪廓
 
 
int main()
{
 double area;
 double minarea = 100;
 double maxarea = 0;
 Moments mom; // 輪廓矩
 Mat image,gray,edge,dst;
 namedWindow("origin");
 namedWindow("connected_region");
 
 image = imread("view.jpg");
 cvtColor(image, gray, COLOR_BGR2GRAY);
 blur(gray, edge, Size(3,3)); //模糊去噪
 threshold(edge,edge,200,255,THRESH_BINARY); //二值化處理
 
 /*尋找輪廓*/
 findContours( edge, contours,
 CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE );
 itr = contours.begin(); //使用迭代器去除噪聲輪廓
 while(itr!=contours.end())
 {
 area = contourArea(*itr);
 if(area<minarea)
 {
 itr = contours.erase(itr); //itr一旦erase,需要重新賦值
 }
 else
 {
 itr++;
 }
 if (area>maxarea)
 {
 maxarea = area;
 }
 }
 dst = Mat::zeros(image.rows,image.cols,CV_8UC3);
 
 /*繪制連通區(qū)域輪廓,計(jì)算質(zhì)心坐標(biāo)*/
 Point2d center;
 itr = contours.begin();
 while(itr!=contours.end())
 {
 area = contourArea(*itr);
 con.push_back(*itr);
 if(area==maxarea)
 drawContours(dst,con,-1,Scalar(0,0,255),2); //最大面積紅色繪制
 else
 drawContours(dst,con,-1,Scalar(255,0,0),2); //其它面積藍(lán)色繪制
 con.pop_back();
 
 //計(jì)算質(zhì)心
 mom = moments(*itr);
 center.x = (int)(mom.m10/mom.m00);
 center.y = (int)(mom.m01/mom.m00);
 centers.push_back(center);
 
 itr++;
 }
 imshow("origin",image);
 imshow("connected_region",dst);
 waitKey(0);
 
 /*漫水填充連通區(qū)域*/
 Point2d seed;
 int new_scalar = 0;
 int loDiff = 8, upDiff = 8;
 int connectivity = 4; 
 
 itrc = centers.begin();
 while(itrc!=centers.end())
 { 
 seed = *itrc;
 floodFill(image,seed,Scalar::all(new_scalar),NULL,
 Scalar::all(loDiff),Scalar::all(upDiff),connectivity);
 itrc++;
 }
 
 waitKey(0);
 return 0 ;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關(guān)文章

  • C語(yǔ)言基于EasyX庫(kù)實(shí)現(xiàn)有顏色彈跳小球

    C語(yǔ)言基于EasyX庫(kù)實(shí)現(xiàn)有顏色彈跳小球

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言基于EasyX庫(kù)實(shí)現(xiàn)有顏色彈跳小球,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 利用Matlab制作環(huán)形相冊(cè)效果詳解

    利用Matlab制作環(huán)形相冊(cè)效果詳解

    這篇文章主要為大家介紹了如何利用Matlab制作出環(huán)形相冊(cè)的效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下
    2022-03-03
  • Qt實(shí)現(xiàn)編輯數(shù)據(jù)庫(kù)數(shù)據(jù)的方法詳解

    Qt實(shí)現(xiàn)編輯數(shù)據(jù)庫(kù)數(shù)據(jù)的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Qt是如何實(shí)現(xiàn)編輯數(shù)據(jù)庫(kù)數(shù)據(jù)的,文中的示例代碼簡(jiǎn)潔易懂,對(duì)我們深入了解QT有一定的幫助,感興趣的小伙伴可以了解一下
    2023-02-02
  • C語(yǔ)言實(shí)例梳理講解常用關(guān)鍵字的用法

    C語(yǔ)言實(shí)例梳理講解常用關(guān)鍵字的用法

    關(guān)鍵字是C語(yǔ)言非常重要的一部分,熟練的掌握和使用關(guān)鍵字有助于我們更加熟悉了解C語(yǔ)言,同時(shí)C語(yǔ)言的關(guān)鍵字也是面試筆試中??嫉膬?nèi)容。C語(yǔ)言的關(guān)鍵字共有32個(gè),但并不是每個(gè)關(guān)鍵字都有坑,本篇文章將通過(guò)理論聯(lián)系實(shí)際的方式為大家講解C語(yǔ)言中易混易錯(cuò)以及??嫉囊恍╆P(guān)鍵字
    2022-05-05
  • C語(yǔ)言 makefile學(xué)習(xí)及實(shí)現(xiàn)實(shí)例

    C語(yǔ)言 makefile學(xué)習(xí)及實(shí)現(xiàn)實(shí)例

    這篇文章主要介紹了C語(yǔ)言 makefile學(xué)習(xí)及實(shí)現(xiàn)實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • C語(yǔ)言中動(dòng)態(tài)內(nèi)存管理圖文詳解

    C語(yǔ)言中動(dòng)態(tài)內(nèi)存管理圖文詳解

    在編寫程序時(shí),通常并不知道需要處理的數(shù)據(jù)量,或者難以評(píng)估所需處理數(shù)據(jù)量的變動(dòng)程度,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中動(dòng)態(tài)內(nèi)存管理的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Qt編寫地圖實(shí)現(xiàn)閃爍點(diǎn)圖的示例代碼

    Qt編寫地圖實(shí)現(xiàn)閃爍點(diǎn)圖的示例代碼

    閃爍點(diǎn)圖的核心有三個(gè)要素,城市的名稱、城市的經(jīng)緯度、對(duì)應(yīng)值的大小,當(dāng)值越大閃爍點(diǎn)也就越大,本文就來(lái)實(shí)現(xiàn)一下地圖閃爍點(diǎn)圖,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-12-12
  • 共用體的定義與應(yīng)用詳細(xì)解析

    共用體的定義與應(yīng)用詳細(xì)解析

    共同體的定義類似結(jié)構(gòu)體,不過(guò)共同體的所有成員都在同一段內(nèi)存中存放,起始地址一樣,并且同一時(shí)刻只能使用其中的一個(gè)成員變量
    2013-08-08
  • 采用C++實(shí)現(xiàn)區(qū)間圖著色問(wèn)題(貪心算法)實(shí)例詳解

    采用C++實(shí)現(xiàn)區(qū)間圖著色問(wèn)題(貪心算法)實(shí)例詳解

    這篇文章主要介紹了采用C++實(shí)現(xiàn)區(qū)間圖著色問(wèn)題(貪心算法),很經(jīng)典的算法問(wèn)題,需要的朋友可以參考下
    2014-07-07
  • 詳解c++種gmock單元測(cè)試框架

    詳解c++種gmock單元測(cè)試框架

    這篇文章我們給大家分享了關(guān)于c++種gmock單元測(cè)試框架的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2018-08-08

最新評(píng)論

民乐县| 顺平县| 江山市| 涞源县| 丹江口市| 辽中县| 耿马| 龙里县| 松溪县| 佛学| 郑州市| 玛多县| 东山县| 永昌县| 镇原县| 兴海县| 沽源县| 宝坻区| 文安县| 车险| 新宾| 辽宁省| 柘城县| 武隆县| 惠东县| 沅江市| 雷山县| 赤壁市| 莱州市| 文登市| 平乐县| 耒阳市| 曲阜市| 福海县| 崇明县| 山西省| 长春市| 巴彦淖尔市| 白银市| 广安市| 宁明县|