将python行转换为c++opencv

Translating python line to c++ opencv

本文关键字:c++opencv 转换 python      更新时间:2023-10-16

我目前正在将Python程序翻译成C++。我已经将98%以上的程序转换成C++,但有一行我被卡住了。我目前正在使用OpenCV,我相信这与此有关。Python行:

      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时间。我怎么不知道我在C++中使用的mean函数是否与Python中使用的相同。此外,Cropped_Boxroi[a]当然是Mat类型的图像的裁剪区域。

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

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