资源简介
检测显著图,并图象分割,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
- 上一篇:音频自助叫号服务
- 下一篇:AVL树的查找、删除、插入
评论
共有 条评论