C++ 对于二值图像的连接的处理函数应该怎么写

我已经将一个图像进行了二值化处理,现在想将图像中连续的图块分离出来。

我通过图像获取了所有图块的点,存在了一个vector<Point> points,的数组中,其中Point是一个自己写的类,里面存的就是点的坐标,x和y
我现在想通过一个算法,实现将points中每一个相连的图块的坐标提取到一个二维数组vector< vetcor<Point> > tagPoints中。
也就是说。二维数组中存放的就是将points分块后的坐标组
希望有大神能过帮帮忙。

第1个回答  2013-05-20
大概思路是从一个点开始,找相连的点,再找相连的点的相连的点,直到没有相连的点了,分成一组。
实现起来应该不难,
while (points.size() != 0)
{
// 新建一组,
vector<Point> newGroup;
newGroup.insert(points.at(0));
points.erase(0);

循环每个新加的点
循环points里的点
与新加的点相连就加到newGroup, 同时从points里删除
}

如何用c++语言实现对bmp二值图像数据的访问?
1.图片也是属于文件类型的一种,图片属于二进制文件。使用fopen函数的二进制模式“rb”就可以打开。2.例程:include <stdlib.h> #include <stdio.h> int main () { FILE * fpPhoto, * fpText, * fpTarget ; int iRead ; char szBuf[100] ; printf ("请输入第...

c++数字图像处理如何将一张黑白图片里的不同物体标记成不同颜色?_百度...
用seed fill算法先标记出各个区域 然后用迭代将不同区域标记成不同颜色 用regiongrow这个函数就可以了 具体怎么用自己F1 这个函数可以吧每块区域标记成不同数字 然后你用find函数找到具体的小块并上色 懂了没?sorry 这个函数是matlab的 没看清你要C++ ...

树莓派实验日志(七)— 基于OpenCV的计算机视觉应用
在OpenCV的简单操作中,加载图片是第一步,通过导入模块并使用imread函数读取图像。接下来,使用shape函数检查图片的形状和分辨率,以了解图像的基本属性。显示图片并调整大小则是进一步操作的基础,这些基本操作为后续的图像处理与分析打下坚实的基础。OpenCV还具备人脸检测功能,通过调用相应的API,开发者可以实...

Visual C++ sprintf()函数用法
strcat 只能连接字符串(一段以’’结尾的字符数组或叫做字符缓冲,null-terminated-string),但有时我们有两段字符缓冲区,他们并不是以 ’’结尾。比如许多从第三方库函数中返回的字符数组,从硬件或者网络传输中读进来的字符流,它们未必每一段字符序列后面都有个相应的’’来结尾。如果直接连接,不管是sprintf 还是strc...

c++语言switch 语句怎么讲解
对于范围不符合,我们一般考虑的是使用代数式对数据进行处理。比如C++中的随机函数能够产生一个0~32768之间的一个整数,如果我们希望得到一个0~10之间的随机数,那么就用它对10取余数,那么结果一定就在这个范围内。对于类型不符合,我们只好尽量用已有的数据类型来描述这种难以表达的类型。就如同电脑中...

C++ 中文件操作的几个基本函数是什么?
可以用“或”或者“+”把以上属性连接起来 ,如3或1|2就是以只读和隐含属性打开文件。例如:以二进制输入方式打开文件c:config.sys fstream file1;file1.open("c:config.sys",ios::binary|ios::in,0);如果open函数只有文件名一个参数,则是以读\/写普通文件打开,即:file1.open("c:config....

混合使用C++和C代码时的异常处理注意事项
这与传统的错误处理方法(如无条件终止、返回错误值、使程序处于非法状态或调用预定义错误处理函数)相比,更为清晰、优雅,并提供了更好的灵活性和控制力。C++的异常机制为程序员提供了一种自然的方式来处理错误,使得编写健壮、可靠的代码更为容易。异常实战入门 假设我们写一个程序,把用户输入的两个...

做图像二值化,bmp格式和jpeg格式的图像有什么不同
图像处理技术博大精深,不仅需要有很强的数学功底,还需要熟练掌握一门计算机语言,在当前流行的语言中,我个人觉的Visual C++这个开发平台是图像开发人员的首选工具。本讲座只是起到抛砖引玉的作用,希望和广大读者共同交流。 VC数字图像处理编程讲座之二 第一节 图像的文件格式 要利用计算机对数字化图像进行处理,首先要...

C语言中sizeof的用法
MFC消息处理函数使用两个参数WPARAM、LPARAM就能传递各种复杂的消息结构(使用 指向结构体的指针)。 6、数组的sizeof 数组的sizeof值等于数组所占用的内存字节数,如: char a1[] = "abc"; int a2[3]; sizeof( a1 ); \/\/ 结果为4,字符 末尾还存在一个NULL终止符 sizeof( a2 ); \/\/ 结果为3*4=12(依赖...

c++各类运算优先级
一般的来说,这种区别对于程序的运行没有多大影响,但是当表达式作为函数的返回值时,函数就被调用了两次(以后再说明),而且如果使用普通的赋值运算符,也会加大程序的开销,使效率降低。 七、条件运算符 条件运算符(?:)是C语言中唯一的一个三目运算符,它是对第一个表达式作真\/假检测,然后根据结果返回两外两个表达式...

相似回答