【问题标题】:OpenCV data typesOpenCV 数据类型
【发布时间】:2010-12-26 05:37:01
【问题描述】:
depth Pixel depth in bits. The supported depths are:

IPL_DEPTH_8U Unsigned 8-bit integer
IPL_DEPTH_8S Signed 8-bit integer
IPL_DEPTH_16U Unsigned 16-bit integer
IPL_DEPTH_16S Signed 16-bit integer
IPL_DEPTH_32S Signed 32-bit integer
IPL_DEPTH_32F Single-precision floating point
IPL_DEPTH_64F Double-precision floating point
  1. 这些值实际上代表什么?

  2. 每一位代表多少位?

  3. 有什么区别:

    无符号 8 位整数和有符号 8 位整数 ?

    无符号 16 位整数和有符号 16 位整数?

    如果他们分别需要 8 位和 16 位?

  4. 使用浮点数据类型有什么意义?

【问题讨论】:

    标签: opencv emgucv


    【解决方案1】:

    无符号 8 位的值从 0 到 255,而有符号 8 位的值从 -127 到 127。大多数数码相机使用无符号数据。签名数据主要是对图像进行操作的结果,例如 Canny 边缘检测。

    更高位深度图像(例如 16 位)的原因是图像中的细节更多。这允许更多操作,例如白平衡或增亮图像,而不会在图像中产生伪影。例如,已被调亮的暗图像在图像中具有明显的条带。 16 位图像将允许图像比 8 位图像更亮,因为有更多信息可供开始。

    某些操作更适用于浮点数据。例如,FFT(快速傅里叶变换)。如果对图像进行了太多操作,那么每次将像素值四舍五入到整数的误差就会开始累积。使用浮点数可以缓解这种情况,但不能消除这种情况。

    【讨论】:

    • 我写了一些代码,应该将图像加载到 Emgu.CV.UI.ImageBox 中。但是无论我使用什么图像深度(字节或 Int32)显示的图片都保持不变。据我所知,使用 8 位应该有 256 种颜色和使用 Int32 的 1600 万色。然而,这些照片彼此完全一样。
    猜你喜欢
    • 1970-01-01
    • 2019-10-19
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    相关资源
    最近更新 更多