Opencv实现曼水填充算法-floodFill函数
2015-09-17 23:12
543 查看
#include<iostream> #include<opencv2/opencv.hpp> using namespace std; using namespace cv; bool g_bDrawingBox = false; Point g_CurrPoint; void onMouse(int event, int x, int y, int flag, void *param); int main() { Mat srcImage = imread("bear.jpg"); Rect rect; //鼠标事件 namedWindow("【漫水填充窗口】"); setMouseCallback("【漫水填充窗口】", onMouse, (void *)&srcImage); while (1) { if (g_bDrawingBox) floodFill(srcImage, g_CurrPoint, Scalar(0, 0, 255), &rect, Scalar(20, 20, 20), Scalar(20, 20, 20)); imshow("【漫水填充窗口】", srcImage); if (waitKey(10) == 27) break; } return 0; } /*注意:不能在回调函数中写入未初始化的矩阵类,所以需要用时,需要写一个标志位,然后再在while(1)循环内使用*/ void onMouse(int event, int x, int y, int flag, void *param) { Mat &img = *(cv::Mat*)param; switch (event) { //点击鼠标左键时 case CV_EVENT_LBUTTONDOWN: { g_bDrawingBox = false; g_CurrPoint = Point(x, y); } break; //松开鼠标左键时 case CV_EVENT_LBUTTONUP: { g_bDrawingBox = true; } break; } }
相关文章推荐
- Linux bind-utils
- Opencv形态学滤波-综合
- Linux 脚本 命令状态 条件测试
- Kurento应用开发指南(以Kurento 6.0为模板) 之六:kurento架构
- Mac 下配置Tomcat环境
- openstack 之 ceilometer: Sample
- opencv Mat 与IplImage 转换
- 新站4个月,新手做网站经验总结
- Linux下DRBD配置
- linux下jar命令与jar包
- 使用squid做出口防火墙
- ubuntu kylin上部署hadoop源码环境
- 决定学linux了
- 决定学linux了
- 决定学linux了
- 决定学linux了
- 决定学linux了
- 决定学linux了
- 决定学linux了
- 决定学linux了