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

  • 大小: 5KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-16
  • 語言: 其他
  • 標簽:

資源簡介

blog.csdn.net/u014679795/article/details/78696444 批量圖像自動分割 opencv grabcut

資源截圖

代碼片段和文件信息

#include?
#include?“opencv2/opencv.hpp“
#include?
#include?
#include?
#include?
#include
#ifdef?linux
#include?
#include?
#endif
#ifdef?WIN32
#include?
#include?
#endif
using?namespace?std;
using?namespace?cv;

vector?getFiles(string?cate_dir);


bool?debug=false;

static?void?getBinMask(?const?Mat&?comMask?Mat&?binMask?){
????binMask.create(?comMask.size()?CV_8UC1?);
????binMask?=?comMask?&?1;
}

Mat?getWhitePart(Mat?img)
{
????Mat?gray;
????cvtColor(imggrayCV_BGR2GRAY);
????Mat?mask;
????int?t1=20;
????int?t2=180;
????Mat?element0?=?getStructuringElement(MORPH_RECT?Size(t1?t1));
????Mat?element1?=?getStructuringElement(MORPH_RECT?Size(t2?t2));
????//閾值分割,提取前景的大致輪廓
????threshold(graymask0255THRESH_BINARY|CV_THRESH_OTSU);
????if(debug)
????????imshow(“mask0“mask);
????erode(mask?mask?element0);
????if(debug)
????????imshow(“mask1“mask);
????dilate(maskmask?element1);
????erode(maskmaskelement1);
????dilate(maskmask?element0);

????//提取白布里面的部分
????if(debug)
????????imshow(“mask2“mask);
????Mat?binMaskmask1;
????getBinMask(maskbinMask);
????img.copyTo(mask1?binMask);
????//mask1是白布中內容
????if(debug)
????????imshow(“白布“?mask1);
????return?mask1;
}

Mat?grabCutImage(Mat?img)
{
????Mat?gray;
????cvtColor(imggrayCV_BGR2GRAY);
????Mat?mask;
????int?t1=50;
????int?t2=10;
????Mat?element0?=?getStructuringElement(MORPH_RECT?Size(t1?t1));
????Mat?element1?=?getStructuringElement(MORPH_RECT?Size(t2?t2));
????//閾值分割,提取前景的大致輪廓
????threshold(graymask0255THRESH_BINARY|CV_THRESH_OTSU);
????if(debug)?imshow(“閾值分割“mask);
????//膨脹,去掉噪點
????dilate(maskmask?element1);
????if(debug)?imshow(“膨脹“mask);
????//腐蝕,得到整塊的小車位置
????erode(mask?mask?element0);
????if(debug)?imshow(“腐蝕“mask);

????//構造grabcut的mask
????for(int?i=0;i????{
????????for(int?j=0;j????????{
????????????if(mask.at(ij)>100)
????????????????mask.at(ij)=cv::GC_PR_BGD;//標記為可能的背景
????????????else
????????????????mask.at(ij)=cv::GC_PR_FGD;//標記為可能的前景

????????}
????}
???//?imshow(“mask3“mask);
????//Mat?out;
????Mat?bgModelfgModel;
????grabCut(imgmaskRect(00img.colsimg.rows)bgModelfgModel1?cv::GC_INIT_WITH_MASK);
???//?imshow(“mask4“mask);
????Mat?binMask1res;
????getBinMask(maskbinMask1);
????img.copyTo(res?binMask1);

????return?res;
}

int?main()
{
????cout?<????string?basePath=“/home/pzy/Pictures/image-cut/“;
????string?outputPath=“/home/pzy/Pictures/orig/“;
????vector?fileName=getFiles(basePath);
#pragma?omp?parallel?for
????for(int?i=0;i????{
????????string?filePath=basePath+fileName.at(i);
????????cout<????????Mat?img=imread(filePath);
????????if(img.empty())
????????{
????????????cerr<<“讀不到該圖像!“<????????????continue;
????????}

????????resize(imgimgSize(img.cols/3img.rows/3));
????????imwrite(outputPath+fileNam

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-12-02?08:03??thresholded\
?????文件????????5403??2017-12-02?08:03??thresholded\main.cpp
?????文件???????12256??2017-12-02?01:47??thresholded\CMakeLists.txt.user
?????文件?????????666??2017-12-02?07:31??thresholded\CMakeLists.txt

評論

共有 條評論