資源簡介
一個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? if?(FloodFillLeft.at(i?0)?==?0)
cv::floodFill(FloodFillLeft?Point(0?i)?Scalar(255));
for?(int?j?=?0;?j? if?(FloodFillTop.at(0?j)?==?0)
cv::floodFill(FloodFillTop?Point(j?0)?Scalar(255));
for?(int?i?=?0;?i? if?(FloodFillBottom.at(i?FloodFillBottom.cols?-?1)?==?0)
cv::floodFill(FloodFillBottom?Point(FloodFillBottom.cols?-?1?i)?Scalar(255));
for?(int?j?=?0;?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? if?(FloodFill.at(i?0)?==?0)
cv::floodFill(FloodFill?Point(0?i)?Scalar(255));
for?(int?j?=?0;?j? if?(FloodFill.at(0?j)?==?0)
cv::floodFill(FloodFill?Point(j?0)?Scalar(255));
for?(int?i?=?0;?i? if?(FloodFill.at(i?FloodFill.cols?-?1)?==?0)
cv::floodFill(FloodFill?Point(FloodFill.cols?-?1?i)?Scalar(255));
for?(int?j?=?0;?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系列 二次開發篇
- 下一篇:用戶登錄界面設計
評論
共有 條評論