资源简介

浅墨出品,零资源分下载,分享精神至上~ 图片素材是一个美丽的妹子,养眼~ 程序功能还是很多的,有鼠标操作,键盘8个按键的自定义操作,还可以调滚动条调节参数。而我们拿着鼠标对窗口中的妹子一顿狂点,就可以得到类似PhotoShop中魔棒的区域选择效果。 涉及到的OpenCV核心函数是FloodFill,SetMouseCallback。 博文《 【OpenCV入门教程之十五】水漫金山:OpenCV漫水填充算法(Floodfill)》的配套详细注释源代码。 配套讲解程序的博文网址: http://blog.csdn.net/poem_qianmo/article/details/28261997 1.已将dll打包到Release文件夹下,运行Release文件夹中的exe可以直接看到运行结果. 2.源代码运行需要进行OpenCV+VS开发环境的配置。可以参看我写的配置博文: http://blog.csdn.net/poem_qianmo/article/details/19809337 3.编写环境:Visual Studio 2010 4.写作当前代码时配套使用的OpenCV版本: 2.4.9 5.推荐代码结合博文一起看,学习效果更佳。 by浅墨

资源截图

代码片段和文件信息

//-----------------------------------【程序说明】----------------------------------------------
// 程序名称::《【OpenCV入门教程之十五】水漫金山:OpenCV漫水填充算法(Floodfill)》 博文配套源码 
// 开发所用IDE版本:Visual Studio 2010
//    开发所用OpenCV版本: 2.4.9
// 2014年6月3日 Created by 浅墨
// 配套博文链接: http://blog.csdn.net/poem_qianmo/article/details/28261997
// PS:程序结合配合博文学习效果更佳
// 浅墨的微博:@浅墨_毛星云 http://weibo.com/1723155442/profile?topnav=1&wvr=5&user=1
// 浅墨的知乎:http://www.zhihu.com/people/mao-xing-yun
// 浅墨的豆瓣:http://www.douban.com/people/53426472/
//----------------------------------------------------------------------------------------------

//-----------------------------------【头文件包含部分】---------------------------------------  
//      描述:包含程序所依赖的头文件  
//----------------------------------------------------------------------------------------------
#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;//定义原始图、目标图、灰度图、掩模图
int g_nFillMode = 1;//漫水填充的模式
int g_nLowDifference = 20 g_nUpDifference = 20;//负差最大值、正差最大值
int g_nConnectivity = 4;//表示floodFill函数标识符低八位的连通值
int g_bIsColor = true;//是否为彩色图的标识符布尔值
bool g_bUseMask = false;//是否显示掩膜窗口的布尔值
int g_nNewMaskVal = 255;//新的重新绘制的像素值


//-----------------------------------【ShowHelpText( )函数】----------------------------------  
//      描述:输出一些帮助信息  
//----------------------------------------------------------------------------------------------  
static void ShowHelpText()  
{  
//输出一些帮助信息  
printf(“\n\n\n\t欢迎来到漫水填充示例程序~\n\n“);  
printf( “\n\n\t按键操作说明: \n\n“  
“\t\t鼠标点击图中区域- 进行漫水填充操作\n“  
“\t\t键盘按键【ESC】- 退出程序\n“  
“\t\t键盘按键【1】-  切换彩色图/灰度图模式\n“  
“\t\t键盘按键【2】- 显示/隐藏掩膜窗口\n“  
“\t\t键盘按键【3】- 恢复原始图像\n“  
“\t\t键盘按键【4】- 使用空范围的漫水填充\n“  
“\t\t键盘按键【5】- 使用渐变、固定范围的漫水填充\n“  
“\t\t键盘按键【6】- 使用渐变、浮动范围的漫水填充\n“  
“\t\t键盘按键【7】- 操作标志符的低八位使用4位的连接模式\n“  
“\t\t键盘按键【8】- 操作标志符的低八位使用8位的连接模式\n“  
“\n\n\t\t\t\t\t\t\t\t by浅墨\n\n\n“  
);  
}  


//-----------------------------------【onMouse( )函数】--------------------------------------  
//      描述:鼠标消息onMouse回调函数
//---------------------------------------------------------------------------------------------
static void onMouse( int event int x int y int void* )
{
// 若鼠标左键没有按下,便返回
if( event != CV_EVENT_LBUTTONDOWN )
return;

//-------------------【<1>调用floodFill函数之前的参数准备部分】---------------
Point seed = Point(xy);
int LowDifference = g_nFillMode == 0 ? 0 : g_nLowDifference;//空范围的漫水填充,此值设为0,否则设为全局的g_nLowDif

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

     文件     130573  2014-05-27 15:07  OpenCVdemo12\OpenCVdemo12\1.jpg

     文件       8504  2014-06-03 15:49  OpenCVdemo12\OpenCVdemo12\main.cpp

     文件       4387  2014-06-03 15:47  OpenCVdemo12\OpenCVdemo12\OpenCVdemo12.vcxproj

     文件        942  2014-05-29 19:06  OpenCVdemo12\OpenCVdemo12\OpenCVdemo12.vcxproj.filters

     文件        143  2014-05-29 19:02  OpenCVdemo12\OpenCVdemo12\OpenCVdemo12.vcxproj.user

     文件        903  2014-05-29 19:02  OpenCVdemo12\OpenCVdemo12.sln

    ..A..H.     11776  2014-06-03 15:49  OpenCVdemo12\OpenCVdemo12.suo

     文件     130573  2014-05-27 15:07  OpenCVdemo12\Release\1.jpg

     文件      19968  2014-06-03 15:47  OpenCVdemo12\Release\OpenCVdemo12.exe

     文件     625664  2014-06-03 15:47  OpenCVdemo12\Release\OpenCVdemo12.pdb

     文件    2099200  2014-04-15 16:57  OpenCVdemo12\Release\opencv_core249.dll

     文件    2080768  2014-04-15 16:58  OpenCVdemo12\Release\opencv_highgui249.dll

     文件    1914368  2014-04-15 16:58  OpenCVdemo12\Release\opencv_imgproc249.dll

     目录          0  2014-06-03 15:48  OpenCVdemo12\OpenCVdemo12

     目录          0  2014-06-03 15:48  OpenCVdemo12\Release

     目录          0  2014-06-03 15:48  OpenCVdemo12

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

              7027769                    16


评论

共有 条评论