资源简介
一个VS2010 C++ 利用OpenCV2.4.9 编写基础的孔洞填充 包含改善算法后的程序(解决周围伪孔洞填充)
代码片段和文件信息
#include
#include
using namespace std;
using namespace cv;
void FillHole();
void FillHoleBetter();
void main()
{
FillHoleBetter();
}
void FillHoleBetter()
{
Mat src = imread(“FillHole.jpg“ 0);
cv::imshow(“src“ src);
Mat dst = src.clone();
cv::threshold(src dst 220 255 THRESH_BINARY_INV);
Mat FloodFillLeft = dst.clone();
Mat FloodFillTop = dst.clone();
Mat FloodFillBottom = dst.clone();
Mat FloodFillRight = dst.clone();
Mat FloodFill = dst.clone();
for (int i = 0; i < FloodFillLeft.rows - 1; i++)//下方
if (FloodFillLeft.at(i 0) == 0)
cv::floodFill(FloodFillLeft Point(0 i) Scalar(255));
for (int j = 0; j < FloodFillTop.cols - 1; j++)//左侧
if (FloodFillTop.at(0 j) == 0)
cv::floodFill(FloodFillTop Point(j 0) Scalar(255));
for (int i = 0; i < FloodFillBottom.rows - 1; i++)//上方
if (FloodFillBottom.at(i FloodFillBottom.cols - 1) == 0)
cv::floodFill(FloodFillBottom Point(FloodFillBottom.cols - 1 i) Scalar(255));
for (int j = 0; j < FloodFillRight.cols - 1; j = j++)//右侧
if (FloodFillRight.at(FloodFillRight.rows - 1 j) == 0)
cv::floodFill(FloodFillRight Point(j FloodFillRight.rows - 1) Scalar(255));
Mat temp1 temp2;
cv::bitwise_and(FloodFillLeft FloodFillRight temp1);
cv::bitwise_and(FloodFillBottom FloodFillTop temp2);
cv::bitwise_and(temp1 temp2 FloodFill);
Mat FloodFillInv = Scalar(255) - FloodFill;
Mat FillHoleResult;
cv::bitwise_or(FloodFillInv dst FillHoleResult);
FillHoleResult = 255 - FillHoleResult;
imshow(“FloodFillResult“ FillHoleResult);
imshow(“FloodFill“ FloodFill);
imshow(“FloodFillInv“ FloodFillInv);
imshow(“dst“ dst);
cv::waitKey(0);
}
void FillHole()
{
Mat src = imread(“FillHole.jpg“ 0);
cv::imshow(“src“ src);
Mat dst = src.clone();
cv::threshold(src dst 220 255 THRESH_BINARY_INV);
Mat FloodFill = dst.clone();
for (int i = 0; i < FloodFill.rows - 1; i++)//下方
if (FloodFill.at(i 0) == 0)
cv::floodFill(FloodFill Point(0 i) Scalar(255));
for (int j = 0; j < FloodFill.cols - 1; j++)//左侧
if (FloodFill.at(0 j) == 0)
cv::floodFill(FloodFill Point(j 0) Scalar(255));
for (int i = 0; i < FloodFill.rows - 1; i++)//上方
if (FloodFill.at(i FloodFill.cols - 1) == 0)
cv::floodFill(FloodFill Point(FloodFill.cols - 1 i) Scalar(255));
for (int j = 0; j < FloodFill.cols - 1; j = j++)//右侧
if (FloodFill.at(FloodFill.rows - 1 j) == 0)
cv::floodFill(FloodFill Point(j FloodFill.rows - 1) Scalar(255));
Mat FloodFillInv = Scalar(255) - FloodFill;
Mat FillHoleResult;
cv::bitwise_or(FloodFillInv dst FillHoleResult);
FillHoleResult = 255 - FillHoleResult;
imshow(“FloodFillResult“ FillHoleResult);
imshow(“FloodFill“ FloodFill);
imshow(“FloodFillInv“ FloodFillInv);
imshow(“dst“ dst);
cv::waitKey(0);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 76800 2019-09-28 09:49 FillHole\Debug\FillHole.exe
文件 457832 2019-09-28 09:49 FillHole\Debug\FillHole.ilk
文件 2214912 2019-09-28 09:49 FillHole\Debug\FillHole.pdb
文件 2268 2019-09-28 09:49 FillHole\FillHole\Debug\FillHole.log
文件 1234 2019-09-28 09:49 FillHole\FillHole\Debug\FillHole.tlog\cl.command.1.tlog
文件 34312 2019-09-28 09:49 FillHole\FillHole\Debug\FillHole.tlog\CL.read.1.tlog
文件 504 2019-09-28 09:49 FillHole\FillHole\Debug\FillHole.tlog\CL.write.1.tlog
文件 173 2019-09-28 09:49 FillHole\FillHole\Debug\FillHole.tlog\FillHole.lastbuildstate
文件 5518 2019-09-28 09:49 FillHole\FillHole\Debug\FillHole.tlog\li
文件 6490 2019-09-28 09:49 FillHole\FillHole\Debug\FillHole.tlog\li
文件 488 2019-09-28 09:49 FillHole\FillHole\Debug\FillHole.tlog\li
文件 846848 2019-09-28 09:49 FillHole\FillHole\Debug\vc120.idb
文件 1347584 2019-09-28 09:49 FillHole\FillHole\Debug\vc120.pdb
文件 240569 2019-09-28 09:49 FillHole\FillHole\Debug\源.obj
文件 11166 2019-09-28 07:04 FillHole\FillHole\FillHole.jpg
文件 4084 2019-09-28 06:43 FillHole\FillHole\FillHole.vcxproj
文件 944 2019-09-28 06:43 FillHole\FillHole\FillHole.vcxproj.filters
文件 2972 2019-09-28 09:49 FillHole\FillHole\源.cpp
文件 13369344 2019-09-28 09:50 FillHole\FillHole.sdf
文件 970 2019-09-28 06:38 FillHole\FillHole.sln
..A..H. 21504 2019-09-28 09:50 FillHole\FillHole.v12.suo
目录 0 2019-09-28 09:49 FillHole\FillHole\Debug\FillHole.tlog
目录 0 2019-09-28 09:49 FillHole\FillHole\Debug
目录 0 2019-09-28 09:48 FillHole\Debug
目录 0 2019-09-28 09:49 FillHole\FillHole
目录 0 2019-09-28 09:50 FillHole
----------- --------- ---------- ----- ----
18646516 26
- 上一篇:统计软件SPSS系列 二次开发篇
- 下一篇:用户登录界面设计
相关资源
- 用户登录界面设计
- 训练SVM分类器 VS2013 C++
- vc++ 文本编辑器仿记事本MFC版
- VC++6.0小番茄助手(绿色版可用)173
- VC++ 2010 Express 中文
- 浙江大学_翁恺_c++_课件和源代码
- 蚁群算法在TSP中的运用c++版
- 深入理解 C++11 :C++11 新特性解析与应
- VC++,CSocket实现网络聊天,可发文件,
- 正弦,方波,三角波生成程序
- C++经典算法集与案例六个PDF文件
- C++语言程序设计第四版 郑莉 答案 p
- 计算BMP24位真彩色图像PSNR的C++小程序
- 基于C++的五子棋游戏设计
- 道路提取算法 c++ opencv
- 蚁群算法C++程序
- Visual C++ 教程 清华大学出版社 郑阿奇
- 基于VC MFC的数据分析系统
- 设计模式 - pdf 高级教程(c++语言)
- C++程序设计谭浩强PDF
- MFC DLL调用(包含调用和DLL自身源代码
- PCA代码实现详解
- Borland公司 正版Turbo C++3.0(TC300)
- 完整的c++指纹识别系统源码
- A星寻路算法c++语言实现
- php-cpp项目移值到windows的vs2017解决方案
- vc++课程设计——聊天室
- 导入3dmax模型的VC++程序
-
c++读取xm
l配置文件 - vc+SQL实现医院收费管理系统
评论
共有 条评论