CvType.CV_8UC4的目的是什么?

Shu*_*ulz 3 opencv

我有一个来自colorblobdetection的代码片段,但我不知道CvType.CV_8UC4的目的是什么.这里的链接并没有真正解释它是如何工作的.

public void onCameraViewStarted(int width, int height) {
    mRgba = new Mat(height, width, CvType.CV_8UC4); 
    mDetector = new ColorBlobDetector();
    mSpectrum = new Mat();
    mBlobColorRgba = new Scalar(255);
    mBlobColorHsv = new Scalar(255);
    SPECTRUM_SIZE = new Size(200, 64);
    CONTOUR_COLOR = new Scalar(255,0,0,255);
}
Run Code Online (Sandbox Code Playgroud)

Una*_*dra 12

OpenCV类型可以读取如下:

  • CV_
  • 8U:无符号整数8位
  • C4:四个频道.

因此,mRgba = new Mat(height, width, CvType.CV_8UC4);创建一个具有四个颜色通道的矩阵,其值在0到255之间.

  • @Shulz的通道是颜色组件.例如,普通RGB图像具有3个通道,RGBA(RGB + alpha)图像具有4个通道,CMYK图像具有4个通道.在http://docs.opencv.org/2.4/doc/tutorials/core/mat_the_basic_image_container/mat_the_basic_image_container.html#creating-a-mat-object-explicitly寻找CV_8UC3的解释 (3认同)

Cas*_*lie 6

这是一种特定形式的Matrix.其中,8u每个元素将是无符号(仅正数)整数,8位.

有4个通道(如4个切片层叠在一起形成不同颜色的图像)的原因是构成图像.其中的前3个是R,G,B,最后一个是Alpha,它是0到1之间的值,表示透明度.当这些切片组合时,您将获得正确的颜色组合.

在此输入图像描述