Opencv:如何将 Mat 拆分为其 BGR 颜色通道

我正在用 Java 编写这个系统,我想将 Mat 分成 3 个特定的颜色通道,以便我可以分别处理每个颜色通道。
理想情况下,当图像被分割时,其通道也将存储为 Mats。我的最终目标是将特定的颜色通道转换为哈希码,以便以后进行图像处理。
我不确定具体如何,并且想知道是否有人知道一些可能有用的功能。
任何帮助将不胜感激。如果有什么不清楚的,请告诉我。我很乐意解释更多。

翻过高山走不出你
浏览 489回答 2
2回答

繁花如伊

似乎以下代码有效:ArrayList<Mat> dst = new ArrayList<>(3);Core.split(src, dst); // Mat src, ArrayList<Mat> dst

函数式编程

有一个cv::split()函数可以将 RGB 垫(或任何多通道垫)拆分为单通道垫阵列。拆分后,您可以在各个通道上运行散列算法。OpenCV 2和OpenCV 3cv::split()文档的链接。如果您的处理对时间敏感,您可以考虑就地处理通道(即彼此交错)是否更有效。这取决于您希望如何处理频道。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java