• 大小: 20KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: 其他
  • 标签: 图象分割  显著图  

资源简介

检测显著图,并图象分割,my code is integrated with graphcuts method

资源截图

代码片段和文件信息

#include “ftsaliency.h“

FTSaliency::FTSaliency()
{

}

FTSaliency::~FTSaliency()
{

}

cv::Mat FTSaliency::getFTSaliencyMap(cv::Mat src)
{
    CV_Assert(src.channels()==3);
    cv::Mat gaussImg;
    cv::Mat imgSaliency;
    std::vector vectorMat;
    cv::cvtColor(src imgLab cv::COLOR_BGR2Lab);
    cv::split(imgLabvectorMat);
    std::vector vectorMat1(vectorMat.size());
    cv::normalize(vectorMat[0]vectorMat1[0]0100cv::NORM_MINMAXCV_16SC1);
    cv::normalize(vectorMat[1]vectorMat1[1]-127127cv::NORM_MINMAXCV_16SC1);
    cv::normalize(vectorMat[2]vectorMat1[2]-127127cv::NORM_MINMAXCV_16SC1);
    cv::merge(vectorMat1imgLab);
    // GaussianBlur
    cv::GaussianBlur(imgLab gaussImg cv::Size(5 5) 0 0);

    // Mean value of L*A*B
    cv::Scalar meanChannels = cv::mean(gaussImg);
    double meanL = meanChannels.val[0];
    double meanA = meanChannels.val[1];
    double meanB = meanChannels.val[2];

    imgSaliency = cv::Mat::zeros(imgLab.size() CV_32FC1);

    int rows = imgSaliency.rows;
    int cols = imgSaliency.cols;

    for(int i=0; i < rows; i++)
    {
        float* dataS=imgSaliency.ptr(i);
        short* dataG=gaussImg.ptr(i);
        for(int j=0; j < cols; j++)
        {
           dataS[j]+=(float(*dataG) - meanL)*(float(*dataG++) - meanL);
           dataS[j]+=(float(*dataG) - meanA)*(float(*dataG++) - meanA);
           dataS[j]+=(float(*dataG) - meanB)*(float(*dataG++) - meanB);
        }
    }
    cv::normalize(imgSaliency imgSaliency 1.0 0.0 cv::NORM_MINMAX);
    return imgSaliency;
}


cv::Mat FTSaliency::getSegmentMap(cv::Mat src)
{
    int spatialRad=25;
    int colorRad=45;
    int maxPryLevel=1;
    cv::Mat imgSegment;
    if(src.empty())
    {
        return imgSegment;
    }
    cv::pyrMeanShiftFiltering(src imgSegment spatialRad colorRad maxPryLevel);
    return imgSegment;
}

cv::Mat FTSaliency::getImgLab()
{
    return imgLab.clone();
}

cv::Mat FTSaliency::getSaliencyMap(cv::Mat src)
{
    cv::Mat imgSal=getFTSaliencyMap(src);
    cv::normalize(imgSal imgSal 255 0cv::NORM_MINMAX);
    imgSal.convertTo(imgSalCV_8UC1);
    return imgSal;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2252  2016-05-31 12:37  FTSaliency1\ftsaliency.cpp

     文件        440  2016-05-30 17:16  FTSaliency1\ftsaliency.h

     文件        582  2016-05-30 16:21  FTSaliency1\FTSaliency1.pro

     文件      18666  2016-06-07 09:51  FTSaliency1\FTSaliency1.pro.user

     文件        834  2016-05-31 12:47  FTSaliency1\main.cpp

     文件       7520  2016-05-31 09:28  FTSaliency1\maxflow\block.h

     文件       3160  2016-05-31 09:24  FTSaliency1\maxflow\graph.cpp

     文件      17233  2014-04-22 05:36  FTSaliency1\maxflow\graph.h

     文件        394  2014-04-22 05:36  FTSaliency1\maxflow\instances.inc

     文件      15052  2016-05-31 09:26  FTSaliency1\maxflow\maxflow.cpp

     文件       4494  2014-04-22 05:36  FTSaliency1\maxflow\README.TXT

     文件       1102  2014-04-22 05:36  FTSaliency1\README.md

     文件       2921  2016-05-31 12:44  FTSaliency1\segmentmap.cpp

     文件        502  2016-05-30 17:29  FTSaliency1\segmentmap.h

     目录          0  2017-08-01 21:35  FTSaliency1\maxflow

     目录          0  2017-08-01 21:35  FTSaliency1

----------- ---------  ---------- -----  ----

                75152                    16


评论

共有 条评论