标签: java opencv image-processing mat
我正在用Java对这个系统进行编码,我想将Mat分成3个特定的颜色通道,以便可以分别在每个颜色通道上工作。 理想情况下,在分割图像时,其通道也将存储为Mats。我的最终目标是将特定的颜色通道转换为哈希码,以便以后进行图像处理。 我不确定确切如何,并且想知道是否有人知道某些有用的功能。 任何帮助将不胜感激。如果有任何不清楚的地方,请通知我。我会很乐意解释更多。
答案 0 :(得分:0)
有一个cv::split()函数,它将RGB Mat(或任何多通道Mat)分割为单通道Mat数组。拆分后,您可以在各个通道上运行哈希算法。
cv::split()
链接到OpenCV 2和OpenCV 3的cv::split()文档。
如果处理对时间敏感,则可以考虑就地处理(即相互交错)通道是否更有效。这取决于您要如何处理频道。
答案 1 :(得分:0)
似乎以下代码有效:
ArrayList<Mat> dst = new ArrayList<>(3); Core.split(src, dst); // Mat src, ArrayList<Mat> dst