• 大小: 3.56MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-01
  • 语言: 其他
  • 标签: 区域生长  

资源简介

区域生长算法的简单实现,人工选取种子,对二值图像的前景进行分割。

资源截图

代码片段和文件信息

#include 
#include 
#include 

using namespace std;
using namespace cv;

// 8 邻域
static Point connects[8] = { Point(-1 -1) Point(0 -1) Point(1 -1) Point(1 0) Point(1 1) Point(0 1) Point(-1 1) Point(-1 0)};

int main()
{
// 原图
Mat src = imread(“img2.jpg“ 0);
// 结果图
Mat res = Mat::zeros(src.rows src.cols CV_8U);
// 用于标记是否遍历过某点
Mat flagMat;
res.copyTo(flagMat);
// 二值图像
Mat bin;
threshold(src bin 80 255 CV_THRESH_BINARY);

// 初始3个种子点
stack seeds;
seeds.push(Point(0 0));
seeds.push(Point(186 166));
seeds.push(Point(327 43));
res.at(0 0) = 255;
res.at(166 186) = 255;
res.at(43 327) = 255;

//int index=0;
//int ii = 0;
//int time[10] = { 200 5000 8000 15000 20000 25000 40000 45000 50000 52000 };

while (!seeds.empty())
{
//if (index++ == time[ii])
//{
// char buf[24];
// sprintf(buf “r%d.jpg“ ii++);
// imwrite(buf res);
//}

Point seed = seeds.top();
seeds.pop();

// 标记为已遍历过的点
flagMat.at(seed.y seed.x) = 1;

// 遍历8邻域
for (size_t i = 0; i < 8; i++)
{
int tmpx = seed.x + connects[i].x;
int tmpy = seed.y + connects[i].y;

if (tmpx < 0 || tmpy < 0 || tmpx >= src.cols || tmpy >= src.rows)
continue;
// 前景点且没有被标记过的点
if (bin.at(tmpy tmpx) != 0 && flagMat.at(tmpy tmpx) == 0)
{
res.at(tmpy tmpx) = 255; // 生长
flagMat.at(tmpy tmpx) = 1; // 标记
seeds.push(Point(tmpx tmpy)); // 种子压栈
}
}
}

imshow(“RES“res);
imwrite(“res.jpg“ res);
waitKey(0);
return 1;
}

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

     文件     505580  2015-04-19 17:07  RegionGrow\Debug\RegionGrow.ilk

     文件    2354176  2015-04-19 17:07  RegionGrow\Debug\RegionGrow.pdb

     文件     338050  2015-04-19 17:07  RegionGrow\RegionGrow\Debug\main.obj

     文件       1499  2015-04-19 17:07  RegionGrow\RegionGrow\Debug\RegionGrow.log

     文件        774  2015-04-19 17:07  RegionGrow\RegionGrow\Debug\RegionGrow.tlog\cl.command.1.tlog

     文件      18838  2015-04-19 17:07  RegionGrow\RegionGrow\Debug\RegionGrow.tlog\CL.read.1.tlog

     文件        748  2015-04-19 17:07  RegionGrow\RegionGrow\Debug\RegionGrow.tlog\CL.write.1.tlog

     文件       1268  2015-04-19 17:07  RegionGrow\RegionGrow\Debug\RegionGrow.tlog\link.command.1.tlog

     文件       1598  2015-04-19 17:07  RegionGrow\RegionGrow\Debug\RegionGrow.tlog\link.read.1.tlog

     文件        726  2015-04-19 17:07  RegionGrow\RegionGrow\Debug\RegionGrow.tlog\link.write.1.tlog

     文件        200  2015-04-19 17:07  RegionGrow\RegionGrow\Debug\RegionGrow.tlog\RegionGrow.lastbuildstate

     文件     617472  2015-04-19 17:07  RegionGrow\RegionGrow\Debug\vc120.idb

     文件    1363968  2015-04-19 17:07  RegionGrow\RegionGrow\Debug\vc120.pdb

     文件      21290  2012-08-16 23:27  RegionGrow\RegionGrow\img2.jpg

     文件       1730  2015-04-19 17:07  RegionGrow\RegionGrow\main.cpp

     文件       4335  2015-04-17 16:34  RegionGrow\RegionGrow\RegionGrow.vcxproj

     文件        956  2015-04-17 16:34  RegionGrow\RegionGrow\RegionGrow.vcxproj.filters

     文件      15170  2015-04-19 17:07  RegionGrow\RegionGrow\res.jpg

     文件      15535  2015-04-19 11:42  RegionGrow\RegionGrow\seed.jpg

    I.A.SH.    109568  2015-04-19 16:43  RegionGrow\RegionGrow\Thumbs.db

     文件   13828096  2015-04-19 17:08  RegionGrow\RegionGrow.sdf

     文件        976  2015-04-17 16:31  RegionGrow\RegionGrow.sln

    ..A..H.     19456  2015-04-19 17:08  RegionGrow\RegionGrow.v12.suo

     目录          0  2015-04-19 17:07  RegionGrow\RegionGrow\Debug\RegionGrow.tlog

     目录          0  2015-04-19 17:07  RegionGrow\RegionGrow\Debug

     目录          0  2015-04-19 17:08  RegionGrow\Debug

     目录          0  2015-04-19 17:07  RegionGrow\RegionGrow

     目录          0  2015-04-19 17:08  RegionGrow

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

             19222009                    28

............此处省略1个文件信息

评论

共有 条评论