gpt4 book ai didi

opencv - 读取像素值方法?

转载 作者:行者123 更新时间:2023-12-02 17:53:45 24 4
gpt4 key购买 nike

我在读取像素值(w=30,h=10)时遇到问题。假设我正在使用

  • int readValue = cvGetReal2D(img,y,x);和
  • int readValue = data[y*step+x];

  • 假设我正在尝试使用 (1) 和 (2) 方法访问 w=35、h=5 的像素值。
    (1) 将输出索引超出范围的错误。但是为什么(2)不输出 index out of range 的错误呢?

    之后,我尝试使用 try...catch()...

    最佳答案

    你有一个连续的内存 block

    size  = w*h = 300

    在 w = 35 和 h = 5 时,您的等式给出
    data[5*30+35] = data[190] < data[300]

    所以没有错误。如果这是 c++,那么即使您的数据索引大于 299,它也不会引发错误。在这种情况下,您将访问超出其界限的数据,从而导致未定义的行为。

    我假设 cvGetReal2D(img,y,x) 足够聪明,可以告诉您其中一个索引大于该维度的定义大小,即使它可以解析为有效地址。

    关于opencv - 读取像素值方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12533343/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com