其实二值化之后这幅图片在电脑里已经不是图片或图像数据了,而是二值化数据。因为非
黑即白只需要一位数据,0(白)或 1(黑),就能代表了,而原来的 RGB 数据是三个字节
二十四位,这一下子可省了好多数据空间。当然其实在电脑里处理也没省多少,因为电脑
处理数据的单位至少是字节,你要是按位存储和处理实际上反而会带来更多麻烦。但在
FPGA 里可以按位处理,二值化后的确能起到节省存储空间的作用。
二值化的主要目的其实就是略去不必要的信息,因为我要完成定位这个任务,只需要上图
的这个二值黑白轮廓图就可以了,不需要其它的颜色信息。图像二值化之后接下来的步骤
就是连通域标记。所以该算法的全称是:二值图像的连通域标记算法。
啥叫连通区域呢?为啥一个确定花生米位置的算法要叫连通区域标记?标记个啥?
我们再来看看上面这个二值化并放大后的示意图。花生米变成了两坨黑黑的像素点,那这
两坨黑点看起来有什么规律?这还能有什么规律,不就是两坨像素点么?其实是有规律
的,左边这坨黑像素点中,像素点之间是相互连通的,也就是一个挨着一个的,右边那坨
也是,但这两坨之间并没有连通。这也能叫规律,我一眼就看出来了?哈哈,又来了,记
住电脑是没有一眼看能力的,电脑就是靠这个连通不连通的规律,识别出这有两个连通
域,也就是代表着两个物体,然后能统计出这两个连通域的有关信息,比如其在图像中所
处的位置,大小(所包含像素点数),边长(边缘上所包含像素点数)等等。
电脑在处理上面这个二值化图片数据时,它会从图像的左上角那个点开始往右逐个像素点
的扫描图像数据,当它扫描发现一个黑点时,就会继续去找这个黑点附近有没有和它相邻
的黑点,找到了一个就再找下一个。也就是按照一定顺序,要把这一坨黑点从最上一行最
左的那一个开始,挨个的都找到并做上标记,比如标记个值“2”(原来它的值是“1”,代表
黑点)。然后再扫描到另一片黑点时把这一片黑点都标记成“3”,最后这两片黑点连通区域
都被标记上了不同的数值已示区别。然后再扫描一遍图像就可以统计出这两个不同连通区
评论0