1.10 高亮显示图像中的物体
问题定义
一张图片中包含一组物体、动物或者形状,也许是因为你想得到图像中物体的个数,想把它们高亮显示出来。
解决方法
OpenCV提供了一个非常有名的函数叫作Canny,它可以高亮显示图像中的线条。本章的后几节会详细介绍Canny的用法。我们先使用Java来实现一些简单的操作。
OpenCV的Canny函数可以检测灰度矩阵中的轮廓。我们需要做的只是把输入的矩阵转换为灰度图像,剩下的工作将由Canny完成。
通过Core类中的cvtColor函数,OpenCV可以很容易地改变颜色空间。
工作原理
假设你有一张工具图片,如图1-22所示。
图1-22 工具图片
和往常一样,我们把图片加载到矩阵中。
接下来,使用cvtColor函数来进行颜色转换,它的输入包含源矩阵、目标矩阵和目标颜色空间。颜色空间的常量可以在Imgproc类中找到,它们的名字以COLOR_为前缀。
使用颜色常量COLOR_RGB2GRAY,可以把矩阵变成黑白两色。