资源简介
浅墨出品,零资源分下载,分享精神至上~
图片素材是一个美丽的妹子,养眼~
程序功能还是很多的,有鼠标操作,键盘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
相关资源
- OpenCV图像的膨胀与腐蚀程序 by浅墨
- 我用VS2010 C++和windows API制作的坦克大
- 算术编码C++ 源代码
- C++开发漂亮的软件界面
- vc++收发电子邮件系统
- C++ CAsyncSocket类聊天室程序
- C++课程设计 学籍管理系统82049
- mfc酒店管理系统C++编写,程序简单,
- C++编写Genesis200自动化
- C++实现线程池源文件
-
最简单的c++ xm
l类,跨平台使用 - c++ 、MFC 实现中点画圆算法及工程代码
- 用C++语言编写一个班级信息管理系统
- VC++ 球体 Phong光照模型
- VC6.0--计算器
- C、C++、C# 函数手册合集chm
- 用c++写的曲线拟合程序
- C+++视频监控系统.zip
- CACertification Authoritcationc++源代码
- funcode.c++弹弹堂游戏程序及源代码
- 哈夫曼编码vc++6.0
- VC++6.0 MFC使用ODBC链接MySQL把图片写入
- C++浏览器.rar
- Visual C++编程技巧典型案例解析
- Visual C++编程全能词典破解文件
- OpenGL三维图形程序设计及源码 c++
- QQ农场源代码C++版
- C++课程设计报告(人事管理系统).
- c++写的迷宫
- Qt版推箱子源码-鼠标键盘功能都有
评论
共有 条评论