0

我目前正在努力将 Python 程序转换为 C++ 我已将超过 98% 的程序转换为 C++,但是我坚持有一条线。我目前正在使用 OpenCV,我相信它与此有关。蟒蛇行:

      for box in self.Boxes[:]:
               Cropped_Box = image.crop(box)
               mean = ImageStat.Stat(Cropped_Box).mean

C++ 行:

      for(int a = 0; a < 24; a++)
                Average_reds = cv::mean(roi[a])

Average_reds 是一个cv::Scalar,我正在尝试从 LED 指示灯板读取 gps 时间。我怎么不知道我mean在 C++ 中使用的函数是否与在 Python 中使用的函数相同。此外,Cropped_Box当然roi[a]是裁剪区域的图像Mat类型。

4

1 回答 1

0

答案是YEScv::mean()执行与 相同的操作ImageStat.mean。它们都执行像素值的通道平均。

略有不同:ImageStat.mean返回每个通道的平均值列表。所以三通道图像将返回一个三元素列表。cv::mean()总是返回 a cv::Scalar,它有四个元素。这意味着如果图像的通道少于四个,则只有前 N 个元素cv::Scalar(其中 N 是图像通道的数量)将具有有意义的数字。

于 2013-07-15T16:25:11.847 回答