魔棒工具--RegionGrow算法简介
from: 魔棒工具--RegionGrow算法简介
struct Node {int x;int y;Node* next; };void MyTreasureBox::RegionGrow(const IplImage* src, IplImage* dst, int seedx, int seedy, int threshold, bool flag) {if(!src || src->nChannels != 1)return ;int width = src->width;int height = src->height;int srcwidthstep = src->widthStep;uchar* img = (uchar*)src->imageData;//成长区域 cvZero(dst);//标记每个像素点是否被计算过IplImage* M = cvCreateImage(cvSize(width, height), 8, 1);int Mwidthstep = M->widthStep;cvZero(M);M->imageData[seedy * Mwidthstep + seedx] = 1; //种子点位置为1,其它位置为0 CvScalar cur = CV_RGB(255,255,255);cvSet2D(dst, seedy, seedx, cur);//队列的两端int start = 0;int end = 1;Node *queue = new Node;queue->x = seedx;queue->y = seedy;queue->next = NULL;Node *first = queue;Node *last = queue;while (end - start > 0){int x = first->x;int y = first->y;uchar pixel = (uchar)img[y * srcwidthstep + x];for (int yy = -1; yy<=1; yy++){for (int xx = -1; xx<=1; xx++){if(flag)if ( abs(yy) && abs(xx))continue;int cx = x + xx;int cy = y + yy;if (cx >= 0 && cx <width && cy >=0 && cy < height){if (abs(img[cy * srcwidthstep + cx] - pixel) <= threshold && M->imageData[cy * Mwidthstep + cx] != 1){Node *node = new Node;node->x = cx;node->y = cy;node->next = NULL;end++;last->next = node;last = node;M->imageData[cy * Mwidthstep + cx] = 1;cvSet2D(dst, cy, cx, cur);}}}}Node* temp = first;first = first->next;delete temp;start++;}cvReleaseImage(&M); }
魔棒工具--RegionGrow算法简介相关推荐
- 数据结构与算法:算法简介
数据结构与算法:算法简介 雪柯 大工生物信息 提笔为写给奋进之人 已关注 你说呢 . shenwei356 等 70 人赞同了该文章 引用自算法图解,作者[美] Aditya Bhargava 译袁国 ...
- hash算法_一致性hash算法简介
一致性hash算法有什么用?我们为什么需要一致性hash算法?这两个问题的答案可以看这篇文章 分布式系统路由算法简介. 了解了一致性hash算法出现的背景,我们来看看什么是一致性hash算法.一致性h ...
- Minimax 和 Alpha-beta 剪枝算法简介,及以此实现的井字棋游戏(Tic-tac-toe)
前段时间用 React 写了个2048 游戏来练练手,准备用来回顾下 React 相关的各种技术,以及试验一下新技术.在写这个2048的过程中,我考虑是否可以在其中加入一个 AI 算法来自动进行游戏, ...
- 推荐系统算法_机器学习和推荐系统(二)推荐算法简介
推荐算法简介 一. 基于人口统计学的推荐算法 二.基于内容的推荐算法 三. 基于协同过滤的推荐算法 协同过滤(Collaborative Filtering , CF) 基于近邻的系统过滤 基于用户( ...
- 图像迁移风格保存模型_CV之NS:图像风格迁移(Neural Style 图像风格变换)算法简介、关键步骤配图、案例应用...
CV之NS:图像风格迁移(Neural Style 图像风格变换)算法简介.过程思路.关键步骤配图.案例应用之详细攻略 目录 图像风格迁移算法简介 图像风格迁移算法过程思路 1.VGG对比NS 图像风 ...
- 【数据挖掘】基于划分的聚类方法 ( K-Means 算法简介 | K-Means 算法步骤 | K-Means 图示 )
文章目录 一. 基于划分的聚类方法 二. K-Means 算法 简介 三. K-Means 算法 步骤 四. K-Means 方法的评分函数 五. K-Means 算法 图示 一. 基于划分的聚类方法 ...
- AI - 常见算法简介(Common Algorithms)
机器学习常见算法简介 - 原文链接:http://usblogs.pwc.com/emerging-technology/machine-learning-methods-infographic/ 应 ...
- DL之CNN:卷积神经网络算法简介之原理简介——CNN网络的3D可视化(LeNet-5为例可视化)
DL之CNN:卷积神经网络算法简介之原理简介--CNN网络的3D可视化(LeNet-5为例可视化) CNN网络的3D可视化 3D可视化地址:http://scs.ryerson.ca/~aharley ...
- DL之CNN:计算机视觉之卷积神经网络经典算法简介、重要进展、改进技巧之详细攻略(建议收藏)
DL之CNN:计算机视觉之卷积神经网络经典算法简介.重要进展.改进技巧之详细攻略(建议收藏) 目录 CNN经典算法细讲 1.CNN历年冠军算法 1.1.LeNet-5 1.2.AlexNet 1.3. ...
最新文章
- mysql和sqlserver共存_mysql 和sqlserver的 多行合并成一行
- AAA及Radius
- 查询mysql存储数据大小_MySQL如何查询数据占用存储空间的大小?
- Php基础数学运算篇
- 获取zabbix监控数据
- 马云经典语录:我不是传奇 我是平凡的人
- python,web框架说明
- 如何获取一个需要登录页面的HTML代码
- Atitit 并发技术的选项 attilax总结 艾龙 著 1. 三大并发模型	1 2. 从可读性考虑 优先使用 并行工作者 多线程模式,不要使用异步流水线模式	2 2.1. 多线程模式方便全局
- 网易云音乐服务器code521,宝塔面板部署网易云音乐无版权服务器
- 2022年全新UI聚合支付系统四方源码4月最新更新安全升级修复XSS漏洞和补单漏洞新增诸多实用功能完美版
- java表达upll导包在哪_用java实现http断点续传.mht 源代码在线查看 - 自己平时从网上搜集的http协议解析文档 资源下载 虫虫电子下载站...
- electron????开发跨平台桌面应用程序???
- 互联网早报 | 8月26日 星期三 | 蚂蚁集团递交招股文件;TikTok首次披露用户数据;滴滴开辟首个欧洲市场...
- DIY电脑检测软件大集中
- python opencv 图像大小_python使用OpenCV设置图片尺寸
- vue整合uniapp_uni-app仿微信App界面|vue+uniapp聊天室|仿微信朋友圈
- 15/18位身份证号码正则表达式(详细版)
- 我的世界java版怎么用结构方块_我的世界结构方块指令(获取结构方块和 使用方法)...
- The certificate issuer‘s certificate has expired. Check your system date and time.“