我有一个来自colorblobdetection的代码段,但我不知道CvType.CV_8UC4的目的是什么。这里的Link并没有真正解释它是如何运作的。
cd <project.git>
git config core.sharedRepository group
chgrp -R (user) . # user - which user is going to push
chmod -R g+w .
chmod g-w objects/pack
chmod g+s 'find . -type d'
答案 0 :(得分:11)
OpenCV类型可以阅读以下内容:
CV_
8U
:无符号整数8位C4
:四个频道。因此mRgba = new Mat(height, width, CvType.CV_8UC4);
创建一个具有四个颜色通道的矩阵,其值在0到255之间。
答案 1 :(得分:6)
这是Matrix的特定形式。
其中8u
表示每个元素都是无符号(仅正数)整数,8位。
有4个通道(如4个切片层叠在一起形成不同颜色的图像)的原因是构成图像。其中的前3个是R,G,B,最后一个是Alpha,它是0到1之间的值,表示透明度。当这些切片组合时,您将获得正确的颜色组合。
答案 2 :(得分:0)
所有答案都是正确的,另外: 第 4 个通道并非在所有情况下都是 alpha/透明度信息。有时,如果传入缓冲区是带有填充字节(大部分在前端或末尾)的 24 位彩色图像来填充它,则可以使用它来填充它,以便可以原子地(仅通过地址)寻址特定像素,而无需找到特定字节抵消。例如。 QImage 将 jpeg 加载为 32 位图像,而 4 个字节中只有 3 个相关。
因此可以直接使用 CV_8UC4。顺便说一句,如果不使用将 RGB 转换为有点像 HSV,所有通道都被单独处理,因此:
如果在接下来的处理步骤中有很多繁重的 cv 操作,最好将其重新格式化为 3bpp 图像。由于缺少无用的第 4 通道,这可以减少大约 25% 的处理时间。