資源簡介
利用openCV3.0進(jìn)行圖片的漫水填充
代碼片段和文件信息
//--------------------------------------【程序說明】-------------------------------------------
// 程序說明:《OpenCV3編程入門》OpenCV3版書本配套示例程序50
// 程序描述:漫水填充算法綜合示例
// 開發(fā)測試所用操作系統(tǒng):?Windows?7?64bit
// 開發(fā)測試所用IDE版本:Visual?Studio?2010
// 開發(fā)測試所用OpenCV版本: 3.0?beta
// 2014年11月?Created?by?@淺墨_毛星云
// 2014年12月?Revised?by?@淺墨_毛星云
//------------------------------------------------------------------------------------------------
//---------------------------------【頭文件、命名空間包含部分】----------------------------
// 描述:包含程序所使用的頭文件和命名空間
//------------------------------------------------------------------------------------------------
#include?“opencv2/imgproc/imgproc.hpp“
#include?“opencv2/highgui/highgui.hpp“
#include?
using?namespace?cv;
using?namespace?std;
//-----------------------------------【全局變量聲明部分】--------------------------------------??
//??????描述:全局變量聲明??
//-----------------------------------------------------------------------------------------------??
Mat?g_srcImage?g_dstImage?g_grayImage?g_maskImage;//定義原始圖、目標(biāo)圖、灰度圖、掩模圖
int?g_nFillMode?=?1;//漫水填充的模式
int?g_nLowDifference?=?20?g_nUpDifference?=?20;//負(fù)差最大值、正差最大值
int?g_nConnectivity?=?4;//表示floodFill函數(shù)標(biāo)識符低八位的連通值
int?g_bIsColor?=?true;//是否為彩色圖的標(biāo)識符布爾值
bool?g_bUseMask?=?false;//是否顯示掩膜窗口的布爾值
int?g_nNewMaskVal?=?255;//新的重新繪制的像素值
//-----------------------------------【ShowHelpText(?)函數(shù)】----------------------------------??
//??????描述:輸出一些幫助信息??
//----------------------------------------------------------------------------------------------??
static?void?ShowHelpText()
{
//輸出歡迎信息和OpenCV版本
printf(“\n\n\t\t\t非常感謝購買《OpenCV3編程入門》一書!\n“);
printf(“\n\n\t\t\t此為本書OpenCV3版的第50個(gè)配套示例程序\n“);
printf(“\n\n\t\t\t???當(dāng)前使用的OpenCV版本為:“?CV_VERSION);
printf(“\n\n??----------------------------------------------------------------------------\n“);
//輸出一些幫助信息??
printf(“\n\n\t歡迎來到漫水填充示例程序~“);
printf(“\n\n\t本示例根據(jù)鼠標(biāo)選取的點(diǎn)搜索圖像中與之顏色相近的點(diǎn),并用不同顏色標(biāo)注。“);
printf(“\n\n\t按鍵操作說明:?\n\n“
“\t\t鼠標(biāo)點(diǎn)擊圖中區(qū)域-?進(jìn)行漫水填充操作\n“
“\t\t鍵盤按鍵【ESC】-?退出程序\n“
“\t\t鍵盤按鍵【1】-??切換彩色圖/灰度圖模式\n“
“\t\t鍵盤按鍵【2】-?顯示/隱藏掩膜窗口\n“
“\t\t鍵盤按鍵【3】-?恢復(fù)原始圖像\n“
“\t\t鍵盤按鍵【4】-?使用空范圍的漫水填充\n“
“\t\t鍵盤按鍵【5】-?使用漸變、固定范圍的漫水填充\n“
“\t\t鍵盤按鍵【6】-?使用漸變、浮動(dòng)范圍的漫水填充\n“
“\t\t鍵盤按鍵【7】-?操作標(biāo)志符的低八位使用4位的連接模式\n“
“\t\t鍵盤按鍵【8】-?操作標(biāo)志符的低八位使用8位的連接模式\n\n“);
}
//-----------------------------------【onMouse(?)函數(shù)】--------------------------------------??
//??????描述:鼠標(biāo)消息onMouse回調(diào)函數(shù)
//---------------------------------------------------------------------------------------------
static?void?onMouse(int?event?int?x?int?y?int?void*)
{
//?若鼠標(biāo)左鍵沒有按下,便返回
//此句代碼的OpenCV2版為:
//if(?event?!=?CV_EVENT_LBUTTONDOWN?)
//此句代碼的OpenCV3版為:
if?(event?!=?EVENT_LBUTTONDOWN)
return;
//-------------------【<1>調(diào)用floodFill函數(shù)之前的參數(shù)準(zhǔn)備部分】---------------
Point?seed?=?Point(x?y);
int?LowDifference?=?g_nFillMode?==?0???0?:?g_nLowDifference;//空范圍的漫水填充,此值設(shè)為0,否則設(shè)為全局的g_nLowDifference
int?UpDifference?=?g_nFillMode?==?0???0?:?g_nUpDifference;//
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????80896??2020-10-27?13:50??【50】漫水填充算法綜合示例\Debug\【50】漫水填充算法綜合示例.exe
?????文件?????480204??2020-10-27?13:50??【50】漫水填充算法綜合示例\Debug\【50】漫水填充算法綜合示例.ilk
?????文件????1084416??2020-10-27?13:50??【50】漫水填充算法綜合示例\Debug\【50】漫水填充算法綜合示例.pdb
?????文件??????78848??2014-11-10?17:02??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\1.jpg
?????文件???????9004??2020-04-18?20:22??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\50_floodFill2.cpp
?????文件?????222527??2020-10-27?13:50??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\Debug\50_floodFill2.obj
?????文件?????748544??2020-10-27?13:50??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\Debug\vc120.idb
?????文件?????692224??2020-10-27?13:50??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\Debug\vc120.pdb
?????文件???????2792??2020-10-27?13:50??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\Debug\【50】漫水填充算法綜合示例.log
?????文件???????1514??2020-10-27?13:50??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\Debug\【50】漫水填充算法綜合示例.tlog\cl.command.1.tlog
?????文件??????30474??2020-10-27?13:50??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\Debug\【50】漫水填充算法綜合示例.tlog\CL.read.1.tlog
?????文件???????1318??2020-10-27?13:50??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\Debug\【50】漫水填充算法綜合示例.tlog\CL.write.1.tlog
?????文件???????5934??2020-10-27?13:50??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\Debug\【50】漫水填充算法綜合示例.tlog\li
?????文件??????16868??2020-10-27?13:50??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\Debug\【50】漫水填充算法綜合示例.tlog\li
?????文件???????1238??2020-10-27?13:50??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\Debug\【50】漫水填充算法綜合示例.tlog\li
?????文件????????214??2020-10-27?13:50??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\Debug\【50】漫水填充算法綜合示例.tlog\【50】漫水填充算法綜合示例.lastbuildstate
?????文件???????4124??2020-04-18?20:22??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例.vcxproj
?????文件????????954??2020-04-18?20:22??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例.vcxproj.filters
?????文件???11403264??2020-10-27?14:21??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例.sdf
?????文件???????1060??2020-04-18?20:21??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例.sln
????..A..H.?????29696??2020-10-27?14:21??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例.v12.suo
?????目錄??????????0??2020-10-27?13:50??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\Debug\【50】漫水填充算法綜合示例.tlog
?????目錄??????????0??2020-10-27?13:50??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例\Debug
?????目錄??????????0??2020-10-23?16:49??【50】漫水填充算法綜合示例\Debug
?????目錄??????????0??2020-10-23?16:49??【50】漫水填充算法綜合示例\【50】漫水填充算法綜合示例
?????目錄??????????0??2020-10-27?14:21??【50】漫水填充算法綜合示例
-----------?---------??----------?-----??----
?????????????14896113????????????????????26
評論
共有 條評論