91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

基于opencv實現(xiàn)的,圓形環(huán)狀標(biāo)記點識別與檢測。 內(nèi)含源碼,論文和標(biāo)記點圖樣。 標(biāo)記點樣式是自己定義的,識別邏輯只適用于此標(biāo)記點。 此代碼基于opencv3.3實現(xiàn),其他版本未測試。 依賴庫:opencv_core opencv_imgcodecs opencv_highgui opencv_imgproc

資源截圖

代碼片段和文件信息

#include?

#include?

#include?


#include?“utils.h“

#define?SHOW_PIC


int?FindChild(std::vector&?hierarchy?int?nId)
{
????if(nId?????????return?0;

????int?nChildId?=?hierarchy[nId][2];

????int?nCount?=?0;
????while?(nChildId?!=?-1)
????{
????????nCount?+=?FindChild(hierarchy?nChildId);
????????nCount++;
????????nChildId?=?hierarchy[nChildId][0];
????}

????return?nCount;
}

struct?MyMarkPoint
{
????std::vector?m_vecContours;
????std::vector>?m_vecChildContours;

????int?m_nNum?=?0;
????std::vector?m_vecBinIndex;
};

int?main()
{
????cv::Mat?src?src_graysrc_bf;
????std::string?strFileName?=?“./0.jpg“;
????src?=?cv::imread(strFileName?1?);


????cv::cvtColor(?src?src_gray?CV_BGR2GRAY?);

????cv::bilateralFilter(src_gray?src_bf?5?5050);
????src_gray?=?src_bf;

????cv::threshold(src_gray?src_gray?0?255?CV_THRESH_OTSU/*|CV_THRESH_BINARY_INV*/);

????std::vector?>?contours;
????std::vector?hierarchy;
????cv::findContours(src_gray?contours?hierarchy?CV_RETR_TREE?CV_CHAIN_APPROX_NONE);
{
#ifdef?SHOW_PIC
????src_gray?=?cv::Scalar::all(0);
????cv::drawContours(src_gray?contours?-1?cv::Scalar(25500));
????cv::imwrite(strFileName+“_Contours.jpg“?src_gray);
#endif}

????std::map?>?cornersIndex;
????std::vector?>?cornerslist;
????for?(unsigned?int?i?=?0;?i?????{
????????std::vector?corners;
????????double?area?=?cv::contourArea(contours[i]);


????????cv::approxPolyDP(contours[i]?corners?sqrt(area)*0.12?true);


????????if(cv::isContourConvex(corners)
????????????????&&?corners.size()?==8
????????????????//還需要更多條件限制?參考論文
????????????????)
????????{
????????????//查找子結(jié)點的個數(shù)
????????????int?nChild?=?hierarchy[i][2];

????????????std::vector?Childlist;

????????????while?(nChild?!=?-1)
????????????{
????????????????Childlist.push_back(nChild);
????????????????nChild?=?hierarchy[nChild][0];
????????????}

????????????if(Childlist.size()?>?4?&&?Childlist.size()?????????????{
????????????????cornerslist.push_back(corners);
????????????????cornersIndex.insert(std::make_pair(i?Childlist));
????????????}
????????}

????}


????std::map?marklist;

????auto?it?=?cornersIndex.begin();
????while?(it?!=?cornersIndex.end())
????{
????????std::vector?ptlist;

????????int?nIndex?=?it->first;
????????//擬合橢圓
????????cv::RotatedRect?rs?=?cv::fitEllipse(contours[nIndex]);

{
#ifdef?SHOW_PIC
????????cv::ellipse(src?rs?cv::Scalar(02550)??1?cv::LINE_AA);
#endif}


????????//仿射變換成單位圓
????????Ellipse2Circle(contours[nIndex]?rs);
????????cv::Point2f?ptC?=?GetCenter(contours[nIndex]);

????????ptlist.push_back(ptC);

????????{
#ifdef?SHOW_PIC
????????cv::circle(src?ptC?2?cv::Scalar(25500)?1?8);
#endif}

????????//子節(jié)點變換
????????std::vector&?child?=?it->second;
????????for(auto?index:child)
????????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-07-25?14:24??mark\
?????文件??????232379??2018-07-24?11:08??mark\111.jpg
?????文件??????709922??2018-07-18?16:31??mark\eb2951511437d84e76b0a66960be5f8f324c.pdf
?????文件????????4166??2018-07-24?16:50??mark\main?(copy).cpp
?????文件??????314837??2018-07-25?14:21??mark\mark.jpg
?????文件?????1899727??2018-07-25?14:21??mark\mark.psd
?????文件??????174734??2018-07-19?18:21??mark\test1.jpg
?????文件??????171816??2018-07-24?11:01??mark\test2.jpg
?????文件??????170230??2018-07-24?11:01??mark\test3.jpg
?????文件??????171799??2018-07-24?11:02??mark\test4.jpg
?????文件??????170335??2018-07-24?11:03??mark\test5.jpg
?????文件????????5822??2018-07-24?14:26??mark\utils?(copy).h

評論

共有 條評論